如何从python代码中提升Suds.WebFault?
我试图从python代码中提出一个Suds.WebFault。如何从python代码中提升Suds.WebFault?,python,suds,fault,raise,Python,Suds,Fault,Raise,我试图从python代码中提出一个Suds.WebFault。\uuuu init\uuuu方法\构造函数接受三个参数\uuuuu init\uuuu(self、fault、document)。故障具有fault.faultcode和fault.detail成员\属性\属性。不管我怎么努力,我都找不出什么类别的错误。如何从python代码中引发Suds.WebFault类型异常 提前感谢。不确定您到底在问什么,但您可以使用以下方法抛出web错误: import suds try: cl
\uuuu init\uuuu
方法\构造函数接受三个参数\uuuuu init\uuuu(self、fault、document)
。故障具有fault.faultcode和fault.detail成员\属性\属性。不管我怎么努力,我都找不出什么类别的错误。如何从python代码中引发Suds.WebFault类型异常
提前感谢。不确定您到底在问什么,但您可以使用以下方法抛出web错误:
import suds
try:
client.service.Method(parameter)
except suds.WebFault, e:
print e
WebFault仅在web服务器返回
元素时才实际引发。所以你自己提出来可能不是个好主意
如果您仍然愿意,我将开始查看框架提出它的代码:-并从那里向后工作。WebFault在
suds中定义。\uuuu init\uuuuu.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)
克丽丝戈姆利的答案对我很有用。如果它对您有效,请勾选它。根本不是要求什么。这实际上是您捕获
WebFault
的方式,而不是您抛出/提出错误的方式。非常好的回答,谢谢。作为参考,我需要在模拟系统中执行此操作,以模拟一般服务器处理错误。