《人生苦短,我用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 捕获。

相关推荐

  1. 人生python·python异常使用

    2024-07-18 15:42:03       18 阅读
  2. 人生Python】(11)函数(上)

    2024-07-18 15:42:03       49 阅读
  3. 人生Python】(15)迭代器、生成器

    2024-07-18 15:42:03       19 阅读
  4. Python异常处理

    2024-07-18 15:42:03       30 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-18 15:42:03       50 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-18 15:42:03       54 阅读
  3. 在Django里面运行非项目文件

    2024-07-18 15:42:03       43 阅读
  4. Python语言-面向对象

    2024-07-18 15:42:03       54 阅读

热门阅读

  1. python open 文件名过长报错No such file or directory

    2024-07-18 15:42:03       14 阅读
  2. 异步编程 进程 线程 协程(补充

    2024-07-18 15:42:03       19 阅读
  3. 【学习笔记】lambda表达式

    2024-07-18 15:42:03       18 阅读
  4. NVIDIA-TensorRT-Python推理

    2024-07-18 15:42:03       17 阅读