自学内容网 自学内容网

《人生苦短,我用python·十》python的异常使用

基本异常处理
Python 提供了 try…except 语句来处理异常。其基本结构如下:

try:
    # 可能会引发异常的代码
    risky_code()
except ExceptionType as e:
    # 处理异常的代码
    handle_exception(e)

示例

try:
    x = 10 / 0
except ZeroDivisionError as e:
    print("捕获到除零错误:", e)

在这个示例中,当尝试除以零时,会引发 ZeroDivisionError 异常,并在 except 块中捕获和处理。

多个异常处理
你可以在 except 语句中处理多种不同类型的异常:

try:
    x = int("not a number")
except ValueError as e:
    print("捕获到值错误:", e)
except TypeError as e:
    print("捕获到类型错误:", e)

使用 else 和 finally
try…except 语句还可以与 else 和 finally 语句一起使用:

else 块中的代码仅在 try 块没有引发异常时执行。
finally 块中的代码无论是否引发异常都会执行,常用于清理资源。

try:
    x = int(input("请输入一个整数: "))
except ValueError as e:
    print("这不是一个整数!")
else:
    print("输入的整数是:", x)
finally:
    print("程序结束")

自定义异常
你可以定义自己的异常类,以便在程序中引发和捕获:

class MyCustomError(Exception):
    pass

def risky_function():
    raise MyCustomError("这是一个自定义错误")

try:
    risky_function()
except MyCustomError as e:
    print("捕获到自定义错误:", e)

异常传递
异常可以被传递到调用栈的上层,直到被捕获:

def func1():
    raise ValueError("错误信息")

def func2():
    try:
        func1()
    except ValueError as e:
        print("捕获到 func1 的异常:", e)

func2()

在这个示例中,func1 引发的异常被 func2 捕获。


原文地址:https://blog.csdn.net/cs1395293598/article/details/140503238

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!