如何从python代码中引发Suds.WebFault?

时间:2011-04-13 15:19:19

标签: python suds fault raise

我正在尝试从python代码中引发一个Suds.WebFault。 __init__方法\构造函数有三个参数__init__(self, fault, document)。该故障有fault.faultcode和fault.detail成员\ attributes \ properties。我无法找出什么类错误属于没有matte我尝试过。如何从python代码中引发Suds.WebFault类型异常?

提前致谢。

3 个答案:

答案 0 :(得分:6)

不确定您究竟要问的是什么,但您可以使用以下方法引发网络错误:

import suds

try:
    client.service.Method(parameter)
except suds.WebFault, e:
    print e

答案 1 :(得分:3)

WebFault在 private void openScreenshot(File imageFile) { Intent intent = new Intent(); intent.setAction(Intent.ACTION_VIEW); Uri uri = Uri.fromFile(imageFile); intent.setDataAndType(uri, "image/*"); startActivity(intent); } 中定义为:

suds.__init__.py

因此,要使用有意义的消息来引发WebFault,您需要将对象作为第一个参数传递给消息。除非必要,否则文档可以简单为class WebFault(Exception): def __init__(self, fault, document): if hasattr(fault, 'faultstring'): Exception.__init__(self, u"Server raised fault: '%s'" % fault.faultstring) self.fault = fault self.document = document

None

答案 2 :(得分:0)

WebFault仅用于在Web服务器返回<Fault>元素时实际引发。所以自己提出这个可能是一个坏主意。

如果您仍然愿意,我会开始查看框架引发它的代码:https://github.com/unomena/suds/blob/4e90361e13fb3d74915eafc1f3a481400c798e0e/suds/bindings/binding.py#L182 - 并从那里向后工作。