Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从python代码中提升Suds.WebFault?_Python_Suds_Fault_Raise - Fatal编程技术网

如何从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

我试图从python代码中提出一个Suds.WebFault。
\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
的方式,而不是您抛出/提出错误的方式。非常好的回答,谢谢。作为参考,我需要在模拟系统中执行此操作,以模拟一般服务器处理错误。