我想从Python代码中引发Suds.WebFault。方法\构造函数的__init__
有三个参数__init__(self, fault, document)
。故障具有fault.faultcode和fault.detail成员\属性\属性。我找不到什么类错误属于我尝试过的无光泽。如何从Python代码中引发Suds.WebFault类型异常?如何从python代码中引发Suds.WebFault?
在此先感谢。
我想从Python代码中引发Suds.WebFault。方法\构造函数的__init__
有三个参数__init__(self, fault, document)
。故障具有fault.faultcode和fault.detail成员\属性\属性。我找不到什么类错误属于我尝试过的无光泽。如何从Python代码中引发Suds.WebFault类型异常?如何从python代码中引发Suds.WebFault?
在此先感谢。
不知道你在问什么,但你可以通过抛出一个网络故障:
import suds
try:
client.service.Method(parameter)
except suds.WebFault, e:
print e
根本不是什么问题。 – Jon 2015-01-26 10:20:10
这实际上是你如何抓住'WebFault',而不是你如何扔/提出一个。 – 2016-02-19 11:09:45
WebFault此类只是意味着当<Fault>
元素是由Web服务器返回给实际提高。所以自己提出这可能是个坏主意。
如果你仍然想,我会开始寻找框架引发它的代码:https://github.com/unomena/suds/blob/4e90361e13fb3d74915eafc1f3a481400c798e0e/suds/bindings/binding.py#L182 - 并从那里向后工作。
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此类具有有意义的消息将需要传递对象与该消息的第一个参数。除非需要,否则文档可以简单地为None
。
import suds
class Fault(object):
faultstring = 'my error message'
raise suds.WebFault(Fault(), document=None)
伟大的答案谢谢。作为参考,我需要在模拟系统中执行此操作来模拟通用服务器处理错误。 – 2017-10-03 05:05:58
这应该被标记为答案。 – Sezen 2018-02-16 19:41:00
chrissygormley的答案适合我。如果它适合你,请勾选它。 – paragbaxi 2011-10-20 16:25:27