2

次の 3 つのスクリプトがあるとします。

script1.py
script2.py
script3.py

次のようなトレースバックが得られたとしましょう。

Traceback (most recent call last):
File "script1.py", line xyz, in ...
...
File "script2.py", line xyz, in ...
...
File "script3.py", line xyz, in ...
...
AttributeError: 'NoneType' object has no attribute 'CoolAttribute'

script3.py で発生するいくつかの異なる例外があります。script2.py の例外を処理せずに、script1.py の xyz 行でこれらの例外を処理する方法はありますか? script1.py の 1 行で script3.py に起因する例外を処理したいだけです。

4

1 に答える 1

1

それを行う単純な汚い方法の 1 つは、simple3.py を try except close でラップし、script3 例外でカスタム例外を発生させることです。

class BaseSimpleError(Exception):
    """dummy class for all Simple3 errors"""

try:
    ...your simple3.py goes here...
except Exception, e:
    raise BaseSimpleError()

script1 では、BaseSimpleError をインポートし、必要に応じてキャッチする必要があります。

于 2014-08-20T13:26:09.930 に答える