python 中try多异常处理
在Python中,异常处理是通过try
、except
、else
和finally
这几个关键字来实现的。下面是一个详细的异常处理例子,它涵盖了这些关键字的用法:
def divide_numbers(a, b):
"""
这个函数尝试将两个数相除,并处理可能出现的异常。
参数:
a (int or float): 被除数
b (int or float): 除数
返回:
float: 如果除法成功,返回商
异常处理:
- 如果b为0,则捕获ZeroDivisionError并打印错误信息。
- 如果发生其他异常(如类型错误),则捕获Exception并打印错误信息。
- 无论是否发生异常,finally块都会执行,用于打印结束信息。
"""
try:
# 尝试执行除法运算
result = a / b
except ZeroDivisionError:
# 捕获并处理除数为0的异常
print("Error: Division by zero is not allowed.")
except Exception as e:
# 捕获并处理其他所有异常类型
print(f"An unexpected error occurred: {e}")
else:
# 如果没有异常发生,则执行这个块
print(f"The result of the division is: {result}")
finally:
# 无论是否发生异常,都会执行这个块
print("Execution of the try block is finished.")
# 使用示例
divide_numbers(10, 2) # 正常情况:输出商和结束信息
divide_numbers(10, 0) # 除数为0:捕获异常并打印错误信息,然后输出结束信息
divide_numbers(10, 'a') # 类型错误:捕获异常并打印错误信息(由于Exception捕获了所有异常类型),然后输出结束信息