Python进阶系列(一)——异常处理

异常处理

在程序中,如果出现异常,我们需要捕捉异常,终止程序(可能的话),并且提示错误信息。
Python进阶系列(一)——异常处理_第1张图片
写好异常处理,对于debug有很大的好处,可以帮助我们捕捉到错误所在的位置,以及错误的原因。

try-except语句

python使用try-case语句来捕捉异常,在try内执行逻辑正常时的运行代码,在except里写下出现不同类型错误时的处理方式。
Python进阶系列(一)——异常处理_第2张图片
int方法在读到无法转换为int的输入时,会抛出ValueError,try-except捕捉到抛出的ValueError,进入到对应的分支。

抛出异常

有了捕捉异常的语句,那么我们需要在一些函数里抛出异常,以便在外界调用函数时捕捉异常。

raise RuntimeError('What a kerfuffle')

如果不是被try-except捕捉到的异常,那么程序会直接终止。
Python进阶系列(一)——异常处理_第3张图片

异常类型

def test():
   raise RuntimeError('123')

try:
   print('good')
   test()
   print('bad')
except RuntimeError as e:
   print(e, type(e))
finally:
   print('over')

输出

good
123 <class 'RuntimeError'>
over

每一个异常都有一个类型,每一个类型就是一个类,例如RuntimeError和ValueError,我们可以用as来获得异常实例,并且进行一定的处理。注意,异常看起来像一个字符串,但其实异常是一个类,例如这里的e的类型是RuntimeError。

捕捉多个异常

Python进阶系列(一)——异常处理_第4张图片
使用多个except,如果有多个异常有相同的处理方式,可以放在一个tuple内处理。
可以使用except Exception来捕获所有的异常,但是不建议这么用

finally

Python进阶系列(一)——异常处理_第5张图片
不论是正常执行,还是出现异常,都会运行的代码部分,一般是用于资源的释放。

你可能感兴趣的:(python,python,开发语言)