pythonカスタム異常と異常キャプチャの方法


異常キャプチャ:

try: 
 XXXXX1
 raise Exception(“xxxxx2”) 
except (Exception1,Exception2,……): 
 xxxx3
else:
 xxxxx4
finally:
 xxxxxxx5
1.rase文は上記のようにエラーメッセージをカスタマイズできます。
2.ライセ後のステートメントは実行されません。異常が発生したため、制御フローが異常捕捉モジュールにジャンプします。
3.except文は一つのexceptの後に複数の異常を持ってもいいし、複数の語句で複数の異常を捉えて、それぞれ違った処理をしてもいいです。
4.except文でキャプチャされた異常が発生していない場合、except内のステートメントブロックは実行されません。elseの文を実行します。
5.上記の文ではtry/except/else/finallyの順序はtryC>except XC>exceptC>finallyでなければなりません。つまり、すべてのexceptはelseとfinallyの前に、else(もしあれば)はfinallyの前に、except Xはexceptの前にしなければなりません。文法エラーが発生します。
6.elseとfinallyはいずれもオプションです。
7.上記の完全な文の中で、else文の存在はexcept Xまたはexcept文を前提としなければならない。except文がないtry blockでelse文を使うと、文法エラーが発生する。
異常パラメータ出力:

try:
 testRaise()
except PreconditionsException as e: #python3   ,   as
 print (e)
カスタム異常は、親タイプのExceptionをカスタマイズするだけです。カスタム異常クラスでは、親タイプinitメソッドを書き換えます。

class DatabaseException(Exception):
 def __init__(self,err='     '):
  Exception.__init__(self,err)

class PreconditionsException(DatabaseException):
 def __init__(self,err='PreconditionsErr'):
  DatabaseException.__init__(self,err)

def testRaise():
 raise PreconditionsException()

try:
 testRaise()
except PreconditionsException as e:
 print (e)
注意:Preconditons ExceptionはまたDatabaseExceptionのサブクラスです。
ですから、トライセProcion Exceptionなら、二つの異常類で捕獲できます。
しかし、トライセDatabaseExceptionであれば、Preconditons Exceptionでは捉えられません。
以上のpythonカスタム異常と異常キャプチャの方法は、小編集が皆さんに提供した内容を全部共有しています。参考にしていただければと思います。よろしくお願いします。