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("出现异常")
执行测试
请输出一个数字>>> 123ansheng@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