我收到一个包含错误消息的列表.我想一次引发多个自定义错误,每个错误都包含列表中的文本:

class CustomError(Exception):
    def __init__(self, text):
        self.text = text

    def __str__(self):
        return self.text


errors = [
    'error1', 'error2', 'error3'
]

推荐答案

你可以在Python3.11+中筹集ExceptionGroup美元:

class CustomError(Exception):
    def __init__(self, text):
        self.text = text

    def __str__(self):
        return self.text


errors = ["error1", "error2", "error3"]


raise ExceptionGroup("Error Message", [CustomError(e) for e in errors])

输出:

  + Exception Group Traceback (most recent call last):
  |   File "", line 12, in <module>
  |     raise ExceptionGroup("Error Message", [CustomError(e) for e in errors])
  | ExceptionGroup: Error Message (3 sub-exceptions)
  +-+---------------- 1 ----------------
    | CustomError: error1
    +---------------- 2 ----------------
    | CustomError: error2
    +---------------- 3 ----------------
    | CustomError: error3
    +------------------------------------

您还可以处理by ExceptionGroup或最好是新的except*语法.

点击此处了解更多信息:https://peps.python.org/pep-0654/

Python相关问答推荐

阅读Polars Python中管道的函数定义

opencv Python稳定的图标识别

Image Font生成带有条形码Code 128的条形码时出现枕头错误OSErsor:无法打开资源

添加包含中具有任何值的其他列的计数的列

使用mySQL的SQlalchemy过滤重叠时间段

Gekko:Spring-Mass系统的参数识别

如何根据参数推断对象的返回类型?

加速Python循环

无法定位元素错误404

如何从pandas的rame类继承并使用filepath实例化

将scipy. sparse矩阵直接保存为常规txt文件

如何在Pyplot表中舍入值

跳过嵌套JSON中的级别并转换为Pandas Rame

从列表中获取n个元素,其中list [i][0]== value''

OpenCV轮廓.很难找到给定图像的所需轮廓

OpenGL仅渲染第二个三角形,第一个三角形不可见

使用tqdm的进度条

如何使用加速广播主进程张量?

使用np.fft.fft2和cv2.dft重现相位谱.为什么结果并不相似呢?

如何根据一定条件生成段id