2016-08-05 4 views
1

私はモジュールを持っています。このモジュールでは、モジュールをインポートするとすぐにいくつかの変数を初期化します。モジュールの初期化で例外が発生した場合どうなるのですか?

my_mobule.py:この場合

def _build_service(): 
    # ...do some stuffs 

_service = _build_service() 

_build_serviceメソッドで例外が発生した場合、何が起こるのだろうか?どのように私のモジュールが例外から回復し、_build_serviceを再び呼び出そうとしていますか?

ありがとうございます。

+0

それが最初のステップのように思える、前この質問を投稿すると、例外が発生し、何が起こるかを確認することです。 – larsks

+0

例外を処理してデフォルト値を指定するか、または不変式を使用する必要があります。 –

+0

@larsksこれを行ったので、ここで求めています。私は例外を見たので、私は知らないが、私のアプリは実行を続けているので、Pythonはこのモジュールを再びインポートしようとします。それは私の疑いです。 –

答えて

1

これは、例外を発生させる関数を呼び出す場合によく似ています。モジュール自体で例外を処理しないと、モジュールをインポートした人にスタックをバンプさせるだけです。このようになります

>>> import my_mobule # sic 
UhohError: something went wrong 

あなたはモジュールでそれを処理する機会を持っている場合、あなたはそのようにそれを行うことができます:

try: 
    _service = _build_service() 
except UhohError: 
    # your handling code here 
関連する問題