在Python中,异常处理是通过`try-except`语句来实现的。以下是基本的使用方法:
try:可能引发异常的代码块result = 1 / 0except 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):passtry:raise CustomError("这是一个自定义异常")except CustomError as e:print(f"捕获到自定义异常: {e}")
这样,你可以针对不同的异常类型采取不同的处理措施。
希望这能帮助你理解Python中的异常处理机制
