Pythonでユーザー独自の例外を定義し使う方法を、公式ドキュメントのコード例を使って解説。POLICYメニューPythonPythonでユーザー独自の例外を定義し使う方法を、公式ドキュメントのコード例を使って解説。2022年3月27日InPythonこの記事の1つ前の記事で、Pythonにおけるtry文(try節+except節)について初心者向けの解説をしました。Pythonにおけるtryとexceptによるエラーと例外処理についてわかりやすく解説その記事では主に、try~exceptの基本的な使い方を中心に説明しましたが、今回の記事はその応用編のようなものです。具体的には、独自に例外を定義(作成)して、それをtry文と組合わわせて使う方法の解説となります。今回は公式ドキュメントのコードをそのまま使って解説します。try~except公式ドキュメントにあるコード例Python公式ドキュメント「エラーと例外」のページには、下のコード例が記載されています。"""#新しい例外をExceptionクラスから継承(継承はBaseExceptonではなくExceptionを使う。print("B")これを実行すると、次のような結果になります。BCDB→C→Dという順番になっていることに注意してください。この順番が今回のポイントです。それでは次にこのコード例を解説していきます。解説Exceptionクラスを使った継承(派生クラス)で、ユーザー独自の例外を定義するまずPythonにおける用語「エラー」そして「例外」については、この1つ前の記事「Pythonにおけるtryとexceptによるエラーと例外処理についてわかりやすく解説」で説明しましたので、そちらをご覧ください。"""#新しい例外をExceptionクラスから継承(継承はBaseExceptonではなくExceptionを使う。B(Exception)」というのは、Pythonがそもそも標準で用意しているExceptionというクラスを継承しているという宣言です。このExceptionクラスは、システム終了以外の「例外」を生み出すクラスです。クラスの継承というのは、今回は詳しく解説しませんが、簡単にいえば継承させることで「親クラス」の機能を使えるようにするというイメージです。全てのユーザ定義例外もこのクラスから派生させるべきです。派生させるとは、クラスの場合は継承を使うと同じ意味です。Bは親クラスExceptionの「例外」を生み出す機能を使えるようになり、言い換えるとユーザーが新しく「例外」を定義していることになります。Bは例外となるわけです。上述のようにExceptionクラスは「システム終了以外」の例外を生み出すクラスですが、システム終了も含めて全ての例外を派生させるBaseExceptionというクラスもPythonには存在します。Dについても考え方は同じです。