1.说明
不管程序写得好不好都有可能遇到异常导致程序终止执行,比如说网络数据库的链接问题等无法控制的外在因素,如果不加以捕获,很难保证程序的正常运行
2.捕获异常
2.1 异常捕获
下面是python最基本的捕获异常的结构
import traceback
try:
print("尝试执行代码")
except Exception as e:
print("遇到错误:{}".format(e))
traceback.print_exc()
else:
print("没有遇到错误")
finally:
print("不管是否有错误都执行")
except Exception会捕获所有异常,但是有时候我们需要分别捕获不同异常做出不同处理
try:
1 / 0
except ZeroDivisionError as e:
print("ZeroDivisionError")
except ValueError as e:
print("ValueError")
except NameError as e:
print("NameError")
except Exception as e:
print("遇到错误:{}".format(e))
else:
print("没有遇到错误")
finally:
print("不管是否有错误都执行")
2.2 自定义异常与主动抛异常
class MyError(Exception):
def __init__(self, arg1, arg2):
self.arg1 = arg1
self.arg2 = arg2
def __str__(self):
return "这是我的自定义异常,arg1={},arg2={}".format(self.arg1, self.arg2)
try:
arg1, arg2 = 1, 0
if arg2 == 0:
raise MyError(arg1, arg2)
except MyError as e:
print("MyError:{}".format(e))
finally:
pass
|