|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
原文:Help on class BaseExceptionGroup in module builtins:
class BaseExceptionGroup(BaseException)
| A combination of multiple unrelated exceptions.
|
| Method resolution order:
| BaseExceptionGroup
| BaseException
| object
|
| Built-in subclasses:
| ExceptionGroup
|
| Methods defined here:
|
| __init__(self, /, *args, **kwargs)
| Initialize self. See help(type(self)) for accurate signature.
|
| __str__(self, /)
| Return str(self).
|
| derive(self, object, /)
|
| split(self, object, /)
|
| subgroup(self, object, /)
|
| ----------------------------------------------------------------------
| Class methods defined here:
|
| __class_getitem__(object, /)
| See PEP 585
|
| ----------------------------------------------------------------------
| Static methods defined here:
|
| __new__(*args, **kwargs)
| Create and return a new object. See help(type) for accurate signature.
|
| ----------------------------------------------------------------------
| Data descriptors defined here:
|
| exceptions
| nested exceptions
|
| message
| exception message
|
| ----------------------------------------------------------------------
| Methods inherited from BaseException:
|
| __getattribute__(self, name, /)
| Return getattr(self, name).
|
| __reduce__(self, /)
| Helper for pickle.
|
| __repr__(self, /)
| Return repr(self).
|
| __setstate__(self, object, /)
|
| add_note(self, object, /)
| Exception.add_note(note) --
| add a note to the exception
|
| with_traceback(self, object, /)
| Exception.with_traceback(tb) --
| set self.__traceback__ to tb and return self.
|
| ----------------------------------------------------------------------
| Data descriptors inherited from BaseException:
|
| __cause__
| exception cause
|
| __context__
| exception context
|
| __dict__
|
| __suppress_context__
|
| __traceback__
|
| args
翻译:模块内置类中 BaseExceptionGroup 的帮助:
类 BaseExceptionGroup(BaseException)
| 多个无关异常的组合。
|
| 方法解决顺序:
| BaseExceptionGroup
| BaseException
| 对象
|
| 内置子类:
| 异常组
|
| 这里定义的方法:
|
| __init__(self, /, *args, **kwargs)
| 初始化自身。 有关准确的签名,请参见 help(type(self)) 。
|
| __str__(self, /)
| 返回 str(self)。
|
| 派生(self, object, /)
|
| split(self, object, /)
|
| subgroup(self, object, /)
|
| ----------------------------------------------------------------------
| 这里定义的类方法:
|
| __class_getitem__(object, /)
| 参见 PEP 585
|
| ----------------------------------------------------------------------
| 此处定义的静态方法:
|
| __new__(*args, **kwargs)
| 创建并返回一个新对象。 有关准确的签名,请参见 help(type)。
|
| ----------------------------------------------------------------------
| 此处定义的数据描述符:
|
| 异常
| 嵌套异常
|
| 信息
| 异常消息
|
| ----------------------------------------------------------------------
| 继承自 BaseException 的方法:
|
| __getattribute__(self, name, /)
| 返回 getattr(self,name)。
|
| __reduce__(self, /)
| pickle 的辅助函数。
|
| 返回 __repr__(self, /)
| 返回 repr(self)。
|
| __setstate__(self, object, /)
|
| add_note(self, object, /)
| Exception.add_note(note) --
| 为异常添加注释
|
| with_traceback(self, object, /)
| Exception.with_traceback(tb) -- | 为异常添加注释。
| 将 self.__traceback__ 设为 tb 并返回 self。
|
| ----------------------------------------------------------------------
| 从 BaseException 继承的数据描述符:
|
| __cause__
| 异常原因
|
| __context__
| 异常上下文
|
| __dict__
|
| __suppress_context__
|
| __traceback__
|
| args
BaseExceptionGroup是Python 3.11中引入的一个异常类,用于将多个异常组合在一起抛出。这个类直接继承自BaseException,而ExceptionGroup则继承自Exception和BaseExceptionGroup。
BaseExceptionGroup可以包含任意类型的异常,而ExceptionGroup只能包含Exception或其子类的实例。
在处理一系列操作时,如果遇到多个异常,可以将这些异常收集起来,然后用一个BaseExceptionGroup实例抛出。
创建异常组:BaseExceptionGroup(message, exceptions)
message:一个字符串,用于说明
exceptions:一个序列,存储多个异常
方法:
subgroup
BaseExceptionGroup.subgroup方法用于创建一个子分组:
BaseExceptionGroup.subgroup(name, conditions, handler_func)
name:子分组的名称。
conditions:一个可选的条件列表,用于定义触发子分组的条件。
handler_func:一个可选的异常处理函数,用于处理触发子分组的异常。
derive
BaseExceptionGroup.derive方法用于创建自定义异常类:
BaseExceptionGroup.derive(Name, BaseClasses=None, ClassDict=None, **kwargs)
Name:新异常类的名称。
BaseClasses:新异常类所继承的父类,默认为BaseException。
ClassDict:新异常类的属性和方法的字典。
kwargs:其他可选的关键字参数。
示例:
def addition():
a = 10
print(a + 'string') # 这会引发TypeError
def create_exception_group():
try:
addition()
except Exception as e:
raise BaseExceptionGroup("Multiple exceptions occurred", [e, ValueError("Another error")])
try:
create_exception_group()
except BaseExceptionGroup as beg:
for exc in beg.exceptions:
print(f"Caught exception: {exc}")
addition函数会引发一个TypeError,然后create_exception_group函数将这个异常和其他异常一起包装在一个BaseExceptionGroup中抛出,并在外层的except块中捕获和处理这些异常.
只能说这么多了,没啥水平 |
|