pythonでエラーをカスタムキャッチする方法

例外キャッチ:

try: 
 XXXXX1
 raise Exception(“xxxxx2”) 
except (Exception1,Exception2,……): 
 xxxx3
else:
 xxxxx4
finally:
 xxxxxxx5
  1. 上記のように、raiseステートメントでエラーメッセージをカスタマイズできます。

  2. 例外がスローされたため、レイズ後のステートメントは実行されません。制御フローは例外キャプチャモジュールにジャンプします。

  3. 例外ステートメントの後に、1つの例外の後に複数の例外を続けることができます。または、複数のステートメントを使用して、複数の例外をキャッチし、それらを異なる方法で処理することができます。

  4. 例外ステートメントによってキャッチされた例外が発生しない場合、例外ステートメントのステートメントブロックは実行されません。しかし、elseでステートメントを実行します

  5. 上記のステートメントでは、try / exception / else / finallyの順序はtry-except X-except-else-finallyである必要があります。つまり、elseを除くすべてがelseとfinallyの前にある必要があり、else(存在する場合)はfinallyの前にある必要があります。 、およびXを除いて、を除いて前にする必要があります。そうしないと、構文エラーが発生します。

  6. elseとfinallyはどちらもオプションです。

  7. 上記の完全なステートメントでは、elseステートメントの存在はexcept Xまたはexceptステートメントに基づいている必要があります。elseステートメントがexceptステートメントなしでtryブロックで使用されると、構文エラーが発生します。

異常なパラメータ出力:

try:testRaise()
except PreconditionsException as e: #python3の文言はasprintを使用する必要があります(e)

カスタム例外の場合、親クラスExceptionを継承するように例外クラスをカスタマイズするだけで済みます。カスタム例外クラスで、親クラスのinitメソッドをオーバーライドします。

classDatabaseException(Exception):
 def __init__(self,err='データベースエラー'):
 Exception.__init__(self,err)classPreconditionsException(DatabaseException):
 def __init__(self,err='PreconditionsErr'):
 DatabaseException.__init__(self,err)
def testRaise():
 raise PreconditionsException()try:testRaise()
except PreconditionsException as e:print(e)

注:PreconditonsExceptionはDatabaseExceptionのサブクラスです。

したがって、PreconditionExceptionを発生させると、両方の例外クラスをキャッチできます。

ただし、raise DatabaseExceptionの場合、PreconditonsExceptionをキャッチできません。

補足例:

Pythonカスタム例外キャプチャ例外処理例外

def set_inf(name,age):if not 0< age <120:
 raise ValueError('範囲外')else:print('%s is %s years old'%(name,age))
def set_inf2(name,age):
 assert 0< age <120,'範囲外'print('%s is %s years old'%(name,age))if __name__ =='__main__':try:set_inf('bob',200)
 except ValueError as e:print('無効な値:',e)set_inf2('bob',200)

これで、pythonカスタムがエラーをキャプチャする方法に関するこの記事は終わりです。より関連性の高いpythonカスタムエラーキャプチャ方法については、ZaLou.Cnを検索してください。

Recommended Posts

pythonでエラーをカスタムキャッチする方法
pythonでエラーを表示する方法
Pythonでカスタムモジュールを追加する方法
pythonコードでラップする方法
Pythonで括弧を省略する方法
pythonでクラスを書く方法
pythonで数値をフィルタリングする方法
PythonでExcelを読む方法
pythonでreturnを書く方法
Pythonで変数を理解する方法
pythonで変数をクリアする方法
PythonでSQLiteを使用する方法
およびおよびまたはPythonでの使用方法
pythonでキャッシュファイルを削除する方法
Pythonでサードパーティモジュールを導入する方法
pythonでnull値を表す方法
pythonでテキストファイルを保存する方法
pythonでwinプログラムを書く方法
pythonでid関数を実行する方法
Pythonでサードパーティモジュールをインストールする方法
pythonでtryステートメントを書く方法
Pythonでプライベート属性を定義する方法
Pythonでグローバル変数を理解する方法
インストールされているモジュールをpythonで表示する方法
さまざまなシステムでのPythonopenメソッド
pythonで辞書を並べ替える方法
pythonで背景音楽を追加する方法
pythonで相対パスを表す方法
Pythonでzip関数を使用する方法
Pythonのインターフェースに基づいてプログラミングする方法
Pythonゲームで重力をシミュレートする方法
pythonでformat関数を使用する方法
pythonでアシスタントを実行するコードを使用する方法
pythonでコード自動プロンプトを設定する方法
pythonでゲームを書く方法を教えてください
pythonでファイルとディレクトリを削除する方法
ダウンロードしたモジュールをpythonでインストールする方法
centos8カスタムディレクトリにphp7.3をインストールする方法
告白プログラムをpythonで書く方法
pythonで連続乗算計算を実行する方法
pythonコードにコメントする方法
pythonをすばやく学ぶ方法
Pythonでのパッケージの導入を理解する方法
pythonで番号のリストを理解する方法
pythonで写真を自動的にダウンロードする方法の例
IEを添付ファイルとしてPythonで保存する方法
pythonオブジェクトを理解する方法
パイソンタプルの使い方
Ubuntu14.04でPython仮想環境を作成する方法
pythonで円の領域を見つける方法
あなたはまだパイソンでケーキを描く方法を知っていますか? ? ?
UbuntuにHelmをインストールする方法
pythonウェブページコードの表示方法
ubuntuでhanlpを使用する方法
python設定ファイルの書き方
CentOSにPHP7.4をインストールする方法
pythonプログラムを保存する方法
Ubuntu14.04にmysqlをインストールする方法
CentOS8にPython3.8をインストールする方法
Ubuntu18.04にPython3.8をインストールする方法
CentOS8にPythonをインストールする方法