4

データベースにアクセスするpythonプログラムを書いています。http リクエストを行うときに、3 種類の例外をキャッチしたいと考えています。タイムアウト、ネットワーク エラー、および http エラー。この状況に対処する最善の方法を探しています。コードの複数の領域でこれらの例外を複数回チェックする必要があり、毎回次のようになります。

try:

   //some request

except timeout:
    print '\nException: Timeout Error'

except connection error:
    print '\nException: Network Error'

except http error, e:
    print 'Exception: %s.' % e

これを複数回 (少なくとも 8 回以上) 行う必要があるため、これらの例外を処理するモジュールを作成する必要がありますか? また、メッセージを表示するだけでなく、システムをシャットダウンした方がよいのはどのような場合ですか?

ありがとうございました。

4

1 に答える 1

4

デコレータを使用したくない場合は、すべての except ステートメントを組み合わせて、いくつかの関数を使用して例外を処理することもできます (エラーが TimeoutError、ConnectionError、および HttpError と呼ばれると仮定して...明確にするために実際には問題ではありません) ) すなわち

try:
   # do stuff
except (TimeoutError, ConnectionError, HttpError) as e:
   handle_exception(e)
于 2013-04-28T22:22:51.843 に答える