主题
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 zero
else
语句
else
块用于在没有异常发生时执行的代码。如果 try
块没有引发异常,else
块中的代码将会执行。
python
try:
result = 10 / 2
except ZeroDivisionError as e:
print("发生错误:", e)
else:
print(f"运算结果: {result}") # 输出:运算结果: 5.0
finally
语句
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
语句块保证无论是否有异常都会执行,常用于清理工作。