异常
当检测到错误时,解释器无法继续执行,并出现错误信息,这就是异常
异常语句可以尝试执行某句可能发生错误的代码,如果发生错误,则执行另一句没有错误的代码
不能确定一段代码是否有错误时,把它放入异常语句中执行,以避免程序发生错误导致无法推进的情况
异常类型
错误信息中会提示异常类型,如 NameError、SyntaxError、FileNotFoundError 等
如果尝试执行的代码的异常类型和要捕获的异常类型不一致,则无法捕获异常
捕获多个异常时,可以把要捕获的异常类型放入tuple
Exception 是所有程序异常类的父类
一般try下只放一行尝试执行的代码
异常的语法
try:
可能发生异常的代码
except (*异常类型) as VARIABLE :
发生异常时执行的代码
else:
没有发生异常时执行的代码
finally:
无论是否发生异常都执行的代码
捕获异常
try:
print(Undef)
except (NameError,SyntaxError) as res :
print(res)
try:
open('Undef','r')
except Exception as res :
print(res)
name 'Undef' is not defined
[Errno 2] No such file or directory: 'Undef'
异常的else
try:
print('this is test')
except Exception as res:
print(res)
else:
print('No error')
this is test
No error
异常的finally
try:
f = open('test.txt','r')
except Exception as res :
f = open('test.txt','w')
print('new')
else:
print('exist')
finally:
print('close')
f.close()
new
close