Python中的错误处理
一、什么是异常?
就是python脚本在执行过程中遇到的错误,遇到错误的时候python程序会
报错,这个时候就会产生异常
异常处理
如果你不想在异常发生时结束你的程序,只需在try里捕获它。
1.try-except语法一
下面是捕获异常的简单语法:
try:
<语句> #运行别的代码
except <名字>:
<语句> #如果在try部份引发了'name'异常
except <名字>,<数据>:
<语句> #如果引发了'name'异常,获得附加的数据
else:
<语句> #如果没有异常发生
i.实例代码-存在异常
try:
num = int(input("请输入一个整数:"))
ret = 8/num
print(ret)
except ZeroDivisionError: # 出现错误的时候会执行的代码
print("除0错误")
else:
print("程序本次执行没有出现错误")
代码运行结果:
ii.实例代码-没有异常
try:
num = int(input("请输入一个整数:"))
ret = 8/num
print(ret)
except ZeroDivisionError: # 出现错误的时候会执行的代码
print("除0错误")
else:
print("程序本次执行没有出现错误")
程序执行结果:
2.try-except语法二
简单的语法:
try:
正常的操作
......................
except:
发生异常,执行这块代码
......................
else:
如果没有异常执行这块代码
注意:
以上方式try-except语句捕获所有发生的异常。但这不是一个很好的方式,我们不能通过该程序识别出具体的异常信息。因为它捕获所有的异常。这样我们就不能针对异常做出特定的修改
代码实例
try:
num = int(input("请输入一个整数:"))
ret = 8/num
print(ret)
except : # 出现错误的时候会执行的代码
print("错误")
else:
print("程序本次执行没有出现错误")
3.try-except语法汇总
1.一个except后面可以跟上多个错误类型
except (RuntimeError, TypeError, NameError):
pass
2.异常有参数
except ZeroDivisionError as err:
print('Handling run-time error:', err)
如果异常有参数,则它们将作为未处理异常的消息的最后一部分(‘详细信息’)打印。
3. try 子句 中调用(包括间接调用)的函数
>>> def this_fails():
... x = 1/0
...
>>> try:
... this_fails()
... except ZeroDivisionError as err:
... print('Handling run-time error:', err)
...
Handling run-time error: division by zero
4.触发异常
raise NameError('HiThere')
raise 语句支持强制触发指定的异常
raise 唯一的参数就是要触发的异常