版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/irving512/article/details/78119213
1. 内建异常类型与新建异常类型
# 内建异常类型
# Exception
# AttributeError
# IOError
# IndexError
# KeyError
# ValueError
# NameError
# SyntaxError
# ZeroDivisionError
# 举例
def raise_built_in_exception(index):
if index < 0:
# 抛出异常
raise IndexError("error index %s" % index)
print(index)
# 新建异常类型
class MyException(Exception): pass
2. 捕获异常
try
:运行可能会抛出异常的代码。except
:该关键字有以下多种功能
- 捕获一个或多个特定异常
- 捕获其他所有异常
else
:当没有出现异常时执行finally
:不管如何都执行
def exception_handle():
try:
print("try")
except IndexError as e:
# 捕获一个异常,并获取异常对象
# 不对异常进行处理,继续抛出异常
raise
except (KeyError, ValueError) as e:
# 捕获某两类异常,并获取异常对象
print(e)
except:
# 捕获除了上述三种异常之外的所有异常
print("except")
else:
# 当没有捕获异常时执行
print("else")
finally:
# 不管是否捕获异常,都要执行
print("finally")