+-
python – twisted:失败与错误
我什么时候应该使用twisted. python.failure.Failure,什么时候应该使用twisted.internet.error.ConnectionDone?或者我应该做twisted.python.failure.Failure(twisted.internet.error.ConnectionDone),如果是这样,我应该在什么情况下这样做呢?
最佳答案
失败表示异常和回溯(通常与当前堆栈跟踪不同).在构造异步异常时应该使用Failure.因此,当您要使用错误触发延迟时,或者当您要调用IProtocol.connectionLost或ClientFactory.clientConnectionFailed等方法时.这是因为在这种情况下,您希望能够将不同的堆栈跟踪与当前堆栈跟踪之外的异常相关联.

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

您还可以使用三个参数构建一个Failure,一个异常类,实例和回溯.这通常使用sys.exc_info()的返回值来完成.

如果您只想引发异常,则无需创建失败.只需执行您在Python程序中通常执行的操作即可引发异常:引发SomeException(…).

点击查看更多相关文章

转载注明原文:python – twisted:失败与错误 - 乐贴网