gpt4 book ai didi

python - 扭曲:失败与错误

转载 作者:太空狗 更新时间:2023-10-30 02:06:28 27 4
gpt4 key购买 nike

什么时候应该使用 twisted.python.failure.Failure,什么时候应该使用 twisted.internet.error.ConnectionDone?或者我应该做 twisted.python.failure.Failure(twisted.internet.error.ConnectionDone),如果是这样,我应该在什么情况下做?

最佳答案

Failure 表示异常和回溯(通常与当前堆栈跟踪不同)。在构造异步异常时,您应该使用 Failure。所以,当你要触发一个有错误的 Deferred 时,或者当你要调用像 IProtocol.connectionLostClientFactory.clientConnectionFailed 这样的方法时。这是因为在这种情况下,您希望能够将与当前堆栈跟踪不同的堆栈跟踪与异常相关联。

您不应该使用 Failure(ConnectionDone),因为 Failure 的正确单参数调用接受异常实例,而不是异常类。因此,改为使用 Failure(ConnectionDone())。您还可以使用零参数形式创建一个新的 Failure:Failure()。这仅在存在“当前”异常时有效,例如在 except 语句的组中。它使用当前异常及其回溯构造 Failure

您还可以构造一个具有三个参数、异常类、实例和回溯的Failure。这通常是使用 sys.exc_info() 的返回值完成的。

当您只想引发异常时,您不需要创建Failure。只需按照您通常在 Python 程序中执行的操作来引发异常:raise SomeException(...)

关于python - 扭曲:失败与错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3452022/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com