Python 的异常处理主要通过 try,except,finally,和 raise 关键字来实现。
1. try/except
这是 Python 中最常用的异常处理机制。try 块中的代码尝试执行,如果遇到任何异常,程序的控制流就会立即跳转到 except 块。如果在 except 块中没有指定异常类型,它将捕获所有类型的异常。
try:
# 尝试执行的代码
except ExceptionType:
# 当 ExceptionType 类型的异常被抛出时执行
例如:
try:
x = 1 / 0
except ZeroDivisionError:
print("Divided by zero!")
2. try/except/else
在 try/except 块之后,可以添加一个 else 块。如果 try 块中的代码没有抛出任何异常,则执行 else 块。
try:
# 尝试执行的代码
except ExceptionType:
# 当 ExceptionType 类型的异常被抛出时执行
else:
# 如果 try 块中的代码没有抛出任何异常,则执行此块
例如:
try:
x = 1 / 2
except ZeroDivisionError:
print("Divided by zero!")
else:
print("No exception!")
3. try/except/finally
无论 try 块中的代码是否抛出异常,finally 块中的代码都会被执行。这对于资源的清理操作非常有用,例如关闭文件或网络连接。
try:
# 尝试执行的代码
except ExceptionType:
# 当 ExceptionType 类型的异常被抛出时执行
finally:
# 无论是否发生异常,此代码都将被执行
例如:
try: **加粗样式**
x = 1 / 0
except ZeroDivisionError:
print("Divided by zero!")
finally:
print("Always executed!")
可以使用 raise 语句手动抛出异常。这是触发异常的常用方法。当 raise 语句被执行时,Python 的异常处理机制会立即接管程序的控制流。如果你想要抛出一个异常,可以使用 raise 语句并指定异常类型和可选的参数。例如:
raise ValueError('Invalid value') # 抛出一个 ValueError 异常,带有 "Invalid value" 的消息字符串。