异常Error
我们在写代码的时候,经常会遇见程序抛出Error无法执行的情况
一般情况下,在Python无法正常处理程序时就会发生一个异常。异常是Python对象,表示一个错误。当Python脚本发生异常时我们需要捕获处理它,否则程序会终止执行。
try...except...else
try: 正常的操作 ...................... except: 发生异常,执行这块代码 ...................... else: 如果没有异常执行这块代码
except后可写入一个固定的错误名称 如写 except IOError 并且我们可以写多个except语句
try...except...finally
我们还可以使用try...except...finally...的错误处理机制
try...except...finally...与try...except...else区别是 无论有没有错误 finally语句都会执行
例如:
try: print('try...') r = 10 / 0 print('result:', r) except ZeroDivisionError as e: print('except:', e) finally: print('finally...') print('END')
当我们认为某些代码可能会出错时,就可以用try
来运行这段代码,如果执行出错,则后续代码不会继续执行,而是直接跳转至错误处理代码,即except
语句块,执行except语句块
,如果有finally
语句块,也会执行finally
语句块,
即使捕捉到错误,仍然会执行finally语句块,可以认为finally语句块优先级高于except语句块。
如下:
def func1(): try: return 1 finally: return 2 def func2(): try: raise ValueError() except: return 1 finally: return 3 print(func1()) print(func2())
程序打印结果是 2和3 ,即使func2里有return 1 ,但是仍然执行return 3 ,实际应用中,并不推荐在finally中使用return返回。