Python学习系列之异常处理

python

什么是异常处理

python内置了一套try···except···finally的错误处理机制

当程序出错的时候进行捕捉,然后根据捕捉到的错误信息进行响相应的处理

常用的内建异常

初识异常处理

如例

让用户进行输入,提示用户输入一个数字,如果用户输入的是数字就转换成int类型,然后打印用户输出的数字,如果用户输入的不是数字,就会转换出错,如果出错就提示用户输入的类型错误

try:

n = int(input("请输入一个数字>>>"))

print('你输入的是数字',n)

except Exception as e:

print('输入类型错误,你应该输入数字')

finally:

print('------end------')

测试

正确:

请输入一个数字>>>12

你输入的是数字 12

------end------

错误:

请输入一个数字>>>aaaaa

输入类型错误,你应该输入数字

------end------

分析:

当我们认为某些代码可能会出错时,就可以用try来运行这段代码

如果执行出错,则后续代码不会执行,而是直接跳转至错误处理代码,即except语句块

执行完except后,如果有finally语句块,则执行finally语句块,至此执行完毕

对不同的异常进行不同的处理

try:

n = int(input("请输出一个数字>>> "))

except ValueError as e:

print("ValueError错误")

except Exception as e:

print("出现异常")

执行测试

请输出一个数字>>> 123

ansheng@Darker:~$ python3 /home/ansheng/文档/Python_code/sublime/Week06/Day04/s2.py

请输出一个数字>>> asd

ValueError错误

在处理异常时,如果出现错误,那么会首先匹配ValueError,然后再匹配Exception

捕捉多个错误

try:

raise IndexError('出错了')

except (IndexError, NameError) as e: # 捕获括号内的错误,并把错误信息赋值给e(一个except可以处理多个异常,这些异常将被放在一个括号里成为一个元组)

print(e)

错误异常的基本结构

try:

# 主代码块

pass

except KeyError as e:

# 异常时,执行该块

pass

else:

# 主代码块执行完,执行该块

pass

finally:

# 无论异常与否,最终执行该块,这块可有可无

pass

执行流程

  • 如果出现错误,那么就执行except代码块,然后再执行finnly代码块
  • 如果没有出现错误,那么就执行else代码块,然后再执行finnly代码块
  • 无论有没有异常都执行finnly代码块

主动抛异常

try:

# raise表示主动出发异常,然后创建一个Exception对象,Exception括号内的值就是Exception对象的值

raise Exception("主动出发的异常")

except Exception as e:

# 输出Exception对象的值

print(e)

执行测试

主动出发的异常

以上是 Python学习系列之异常处理 的全部内容, 来源链接: utcz.com/z/386623.html

回到顶部