管理异常的便利设施。
cs.excutils的Python项目详细描述
管理异常的便利设施。
函数logexc(func)
decorator来记录异常并重新发送。
函数logexc_gen(genfunc)
decorator来记录异常并为生成器重新访问。
函数LogExceptions(conceal=False)
报告异常和可选的 压制他们。
功能noexc(func)
decorator包装不应引发异常的函数。 相反,将尝试记录任何引发的异常。
当然,一个重要的副作用是如果函数引发 现在它不返回任何异常。 我的主要用例实际上是包装日志功能, 我已经终止了其他合理的代码。
函数noexc_gen(func)
修饰程序来包装不应引发异常的生成器。 相反,将尝试记录任何引发的异常并结束迭代。
我的主要用例是将链接在管道中的生成器包装起来, 在cs.later.later.pipeline中。
类NoExceptions
一个上下文管理器,用于捕获all异常并记录它们。 可以说,这应该是一个简单的尝试…但那是语法上的 嘈杂的声音把球从顶部分开。 对于简单的函数调用,return_exc_info()可能更好。
函数return_exc_info(func, *args, **kwargs)
运行提供的函数和参数。
返回(func_return, None)
如果操作成功
以及(None, exc_info)
在出现异常的情况下。
exc_info
是(exc_type, exc_value, exc_traceback)
的三元组。
由sys.exc_info()
返回。
如果你需要保护整个套房而不想搬走它
在它自己的函数中,考虑noexceptions上下文管理器。
函数returns_exc_info(func)
decorator函数包装应该捕获异常的函数, 例如内部事件循环或工作线程。
它使函数返回(func_return, None)
如果操作成功
以及(None, exc_info)
在出现异常的情况下。
exc_info
是(exc_type, exc_value, exc_traceback)
的三元组。
由sys.exc_info()
返回。
函数safe_property(func)
替换@property,它允许attributeerror作为runtimeerrors转义。
函数transmute(exc_from, exc_to=None)
decorator将内部异常转换为另一个异常类型。
激励性用例是类中的属性 getattr方法;如果属性的某些内部操作 函数引发attributeRor,然后绕过属性 赞成getattr。混乱接踵而至。
原则上,这可能是一个有任何异常的问题 从呼叫链中的“深层”,这可能会被误认为 函数本身引发的“浅”异常。
函数unattributable(func)
decorator将attributeerror转换为runtimeerror。
函数unimplemented(func)
必须由存根类实现的存根方法的修饰符。