Pythonで独自の例外エラーを発生させる方法

Pythonでプログラミングを行っていると思わぬ箇所で例外エラーが発生したりします。

そんな例外エラーが発生した際に独自のエラーメッセージを表示させたかったので独自の例外エラークラスを作成してみました。

スポンサーリンク

Pythonで独自の例外エラーを発生させる

Pythonでは標準で例外エラーが発生するとExceptionクラスの派生クラスをthrow(Pythonではraise)してくれます。

ただ、そのままの例外エラーではプログラム固有のメッセージを付加してエラー内容を表示するメソッドが公開されていないようなので、独自で例外エラークラスを定義してメッセージを付加してみました。

やり方としては既定クラス(親クラス)をExcptionとしたサブクラス(子クラス)を作成しました。

作成したのは以下のクラスです。

実質は__init__()に1行書いただけで、渡されたエラークラスをraiseするタイミングで元のエラーメッセージに、独自のエラーメッセージを付加しているだけです。
(__file__は実行時のファイル名を表現しています。実験的に追加してます。)

呼び出す場合は、例外エラーをキャッチしたらmyExceptionクラスを元のエラークラスと付加したいメッセージを指定して生成するだけです。

これを実行すると

ということで元々のメッセージに付加した「[main.py]sub_func() 0で割ってはいけません。[x=1/0]」が付加されて表示されるようになります。

まとめ

例外クラスをちょっと一工夫するだけでプログラムのどこで起こったのかや、その時の引数などが出力できるようになり、トラブル解決の大きな手掛かりとなります。

以上、Pythonで独自の例外エラーを発生させる方法でした。

タイトルとURLをコピーしました