Python的异常处理是通过try
和except
语句块来实现的。这种机制允许你检测和处理程序运行时的错误。如果try
块中的代码引发了异常,那么程序将停止执行当前try
块中的剩余代码,并跳转到第一个匹配的except
块(如果有的话)去处理这个异常。
基本语法
try:
# 尝试执行的代码
pass
except ExceptionType1:
# 如果发生ExceptionType1异常,则执行这里的代码
pass
except ExceptionType2:
# 如果发生ExceptionType2异常,则执行这里的代码
pass
else:
# 如果没有异常发生,则执行这里的代码
pass
finally:
# 不管是否发生异常,都会执行这里的代码
pass
示例
try:
# 尝试除以0,这将引发一个ZeroDivisionError异常
result = 10 / 0
except ZeroDivisionError:
print("不能除以0")
else:
print("结果是:", result)
finally:
print("这是finally块,无论是否发生异常都会执行")
输出将会是:
不能除以0
这是finally块,无论是否发生异常都会执行
捕获所有异常
如果你想要捕获所有类型的异常,可以使用Exception
类(它是所有异常类的基类):
try:
# 尝试执行的代码
pass
except Exception as e:
# 处理所有异常
print("发生了一个异常:", e)
自定义异常
Python也允许你定义自己的异常类,这可以通过继承内置的Exception
类(或它的子类)来实现:
class MyCustomError(Exception):
"""自定义异常类"""
def __init__(self, message="这是一个自定义异常"):
self.message = message
super().__init__(self.message)
try:
# 触发自定义异常
raise MyCustomError("出错了!")
except MyCustomError as e:
print(e)
输出将会是:
出错了!