0

我有一个使用 suds 的 java web 服务和 python 客户端。我的服务器引发了我想在 python 脚本中处理的自定义异常。是否有可能捕获它们,或者它总是会被捕获为 suds.WebFault 异常?

4

1 回答 1

1

suds.WebFault 具有包含故障信息的故障字段。

except suds.WebFault, e:
    print e.fault.faultstring
    print e.document

您可以让您的程序从 WebFault 分析服务器自定义异常,并为每个特定服务器异常创建新的异常类,然后捕获suds.WebFault异常、读取服务器异常详细信息并引发您的自定义异常。

class MyException(suds.WebFault):
    pass


def convertServerException(e):
    if e.fault.faultstring == 'exception1':
        return MyException()
        #...add more exception handling cases here

#...
try:
#...make a WebService call
except suds.WebFault, e:
    print e
    print e.fault
    raise convertServerException(e)
于 2013-07-23T13:11:24.983 回答