0

sudsを使用するJava WebサービスとPythonクライアントがあります。私のサーバーは、Python スクリプトで処理したいカスタム例外を発生させます。それらをキャッチすることは可能ですか、それとも常に suds.WebFault 例外としてキャッチされますか?

4

1 に答える 1

1

suds.WebFault には、障害に関する情報を持つ fault フィールドがあります。

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 に答える