主题
try-except-finally 结构
在 Python 中,try-except-finally 结构是一种用于异常处理的机制。通过这种结构,我们可以捕获和处理程序运行中可能出现的错误,同时确保在程序结束时执行必要的清理操作。
try-except 语句
try-except 语句用于捕获并处理异常。try 块中包含可能引发异常的代码,except 块用于捕获并处理特定的异常类型。
python
try:
x = 1 / 0 # 引发除零错误
except ZeroDivisionError as e:
print("错误发生:", e) # 输出:错误发生: division by zero捕获多种异常
可以在同一个 try 语句中捕获多种不同类型的异常,每个异常类型可以有独立的处理方式。
python
try:
x = int("abc") # 引发 ValueError
except ZeroDivisionError as e:
print("除零错误:", e)
except ValueError as e:
print("值错误:", e) # 输出:值错误: invalid literal for int() with base 10: 'abc'捕获所有异常
使用 except 块不指定异常类型时,表示捕获所有类型的异常。建议仅在确实需要的情况下使用这种方式,因为它会捕获所有异常类型,可能隐藏程序中的错误。
python
try:
x = 1 / 0
except Exception as e:
print("捕获到异常:", e) # 输出:捕获到异常: division by zeroelse 语句
else 块用于在没有异常发生时执行的代码。如果 try 块没有引发异常,else 块中的代码将会执行。
python
try:
result = 10 / 2
except ZeroDivisionError as e:
print("发生错误:", e)
else:
print(f"运算结果: {result}") # 输出:运算结果: 5.0finally 语句
finally 块中的代码无论是否发生异常都会被执行。常用于执行清理操作,如关闭文件、释放资源等。
python
try:
f = open("file.txt", "r")
content = f.read()
except FileNotFoundError as e:
print("文件未找到:", e)
finally:
print("文件处理完毕") # 输出:文件处理完毕
f.close() # 无论是否发生异常,都会关闭文件finally 用法示例
python
try:
x = 1 / 0 # 引发除零错误
except ZeroDivisionError:
print("除以零错误")
finally:
print("清理工作完成") # 输出:清理工作完成总结
try-except结构用于捕获并处理异常;else语句块在没有异常发生时执行;finally语句块保证无论是否有异常都会执行,常用于清理工作。