Python异常处理:当函数抛出错误时,如何优雅地捕获并解决?
在Python中,异常处理是一种控制程序流程的方式。当一个函数或语句执行过程中遇到问题(例如,除以零、文件不存在等),会立即停止,并抛出一个特定类型的异常。
优雅的捕获和解决异常通常包括以下步骤:
- 使用try/except块:这是最基础的处理方式,将可能出现异常的代码包裹在try中,然后在except部分处理这些异常。
def divide(a, b):
try:
return a / b
except ZeroDivisionError:
print("Cannot divide by zero!")
return None
result = divide(10, 2)
if result is not None:
print(f"The result is: {result}")
- 针对具体异常类型处理:在except部分,可以明确指定要捕获的特定异常类型。这样可以使代码更加模块化和易于维护。
def divide(a, b):
try:
return a / b
except ZeroDivisionError:
print("Cannot divide by zero!")
except ValueError: # 非数字输入的处理
print("Invalid input! Please enter a number.")
else:
return result
result = divide(10, "two"))
if result is not None:
print(f"The result is: {result}")
- 使用finally块执行清理操作:无论是否发生异常,finally块中的代码都会被执行。这可以用来关闭文件、释放资源等。
def divide(a, b):
try:
return a / b
except ZeroDivisionError:
print("Cannot divide by zero!")
finally:
# 清理操作,例如关闭文件
if open("my_file.txt", "r").close():
print("File closed successfully.")
通过这些方式,你可以优雅地捕获和处理Python中的异常。
还没有评论,来说两句吧...