在Python中,异常处理是通过`try-except`语句来实现的。以下是基本的使用方法:
try:
可能引发异常的代码块
result = 1 / 0
except ZeroDivisionError as e:
处理特定异常的代码块
print(f"除数不能为零: {e}")
except Exception as e:
处理其他异常的代码块
print(f"发生错误: {e}")
else:
如果没有发生异常时要执行的代码块
print(f"结果是: {result}")
finally:
无论是否发生异常,都会执行的代码块
print("程序结束。")
解释
`try`块:包含可能引发异常的代码。
`except`块:用于捕获和处理特定类型的异常。可以指定一个或多个异常类型。
`else`块:在没有发生异常时执行的代码块。
`finally`块:无论是否发生异常,都会执行的代码块,通常用于清理资源或关闭连接。
示例
假设我们有一个函数`divide`,它接受两个参数并返回它们的除法结果:
def divide(a, b):
return a / b
我们可以使用`try-except`来捕获和处理可能发生的异常:
try:
result = divide(1, 0)
except ZeroDivisionError as e:
print(f"除数不能为零: {e}")
except Exception as e:
print(f"发生错误: {e}")
else:
print(f"结果是: {result}")
finally:
print("程序结束。")
这样,如果`divide`函数中的除法操作引发了`ZeroDivisionError`,程序会打印出错误信息,并继续执行`finally`块中的代码。如果没有异常发生,程序会打印出结果并执行`finally`块中的代码。
自定义异常
你还可以创建自定义异常类,继承自`Exception`或其子类:
class CustomError(Exception):
pass
try:
raise CustomError("这是一个自定义异常")
except CustomError as e:
print(f"捕获到自定义异常: {e}")
这样,你可以针对不同的异常类型采取不同的处理措施。
希望这能帮助你理解Python中的异常处理机制