捕获异常(异常处理)
出现bug后进行提醒,使得整个程序继续运行。
基本语法:
> try:
> 可能发生错误的代码
> except:
> 如果出现异常执行的代码
except用来捕获异常,并进行处理。
捕获指定异常
例如 NameError
try:
print(name)
except NameError as e:
print("出现了变量未定义的异常。")
print(e)
=========================================
>>> 出现了变量未定义的异常。
>>> name 'name' is not defined
注意,如果try内的代码错误不是’变量未定义‘(如:1/0),则except不能捕获到该异常。
捕获多个异常
通过 Exception 来捕获全部异常
# 示例1
try:
print(name)
except Exception as e:
print(e)
========================
>>> name 'name' is not defined
# 示例2
try:
print(1 / 0)
except Exception as e:
print(e)
========================
>>> division by zero
异常else
如果没有出现异常,则执行else内的内容
try:
print("hello")
except Exception as e:
print(e)
else:
print("无异常")
==================================
>>> hello
>>> 无异常
finally:
finally表示有无异常都要执行的语句。
try:
print("hello")
except Exception as e:
print(e)
else:
print("无异常")
finally:
print('退出')
==========================
>>> hello
>>> 无异常
>>> 退出
总结:
try:运行一段代码,但不确定这段代码是否会出现异常;
except:如果try内的代码出现异常,except用来捕获异常,并执行except内的代码;
else:如果try内的代码无异常,则执行else内的代码;
finally:无论try内的代码是否有异常,都要执行finally内的代码。
即:
try:
可能出现异常的代码
except 异常 as 别名:
出现异常后的处理手段
else:
未出现异常时应执行的代码
finally:
不管是否发生异常都要执行的代码