内建异常类型与新建异常类型
内建异常类型
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
捕获异常
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")
网友评论