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

| 我正在尝试从python代码引发Suds.WebFault。
__init__
method \\ constructor使用三个参数
__init__(self, fault, document)
。该故障具有fault.faultcode和fault.detail成员\\ attributes \\ properties。我找不到什么类别的错误不属于我尝试过的东西。如何从python代码引发Suds.WebFault类型异常? 提前致谢。     
已邀请:
不确定您要问的是什么,但可以使用以下方法引发网络故障:
import suds

try:
    client.service.Method(parameter)
except suds.WebFault, e:
    print e
    
WebFault在
suds.__init__.py
中定义为:
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
因此,要使用有意义的消息引发WebFault,您将需要将对象作为消息的第一个参数传递。除非需要,否则文档可以简单地为“ 5”。
import suds

class Fault(object): 
    faultstring = \'my error message\'

raise suds.WebFault(Fault(), document=None)
    
仅当Web服务器返回
<Fault>
元素时,才实际引发WebFault。因此,自己提出来可能不是一个好主意。 如果您仍然愿意,我将开始查看框架引发它的代码:https://github.com/unomena/suds/blob/4e90361e13fb3d74915eafc1f3a481400c798e0e/suds/bindings/binding.py#L182-然后从那里。     

要回复问题请先登录注册