見出し画像

Pythonのユーザー定義例外クラスを少し弄ったサンプルプログラム

Pythonのユーザー定義例外クラスを少し弄った、ユーザー定義例外クラス作成サンプルプログラムです。
個人的なメモとして書いたプログラムですが、需要があるかもしれないと考えて公開することにしました。

送出されたユーザー定義例外名をエラーメッセージの前に自動的に追加するように、ユーザー定義例外クラスを書き換えています。出力結果を見てもらえれば、ユーザー定義例外をexceptでキャッチした後のprint関数によるエラーメッセージ出力に、どのような変更がされているかが分かると思います。

このサンプルプログラムに対して質問がある方は、コメント欄より質問してください。まだPython初心者ですが、回答出来る範囲でお答えしたいと思っています。

★サンプルプログラム★


"""
    Pythonのユーザー定義例外クラスを少し弄ったサンプルプログラム UserExpt.py

        送出されたユーザー定義例外名をエラーメッセージの前に自動的に追加する。

        https://docs.python.org/ja/3/tutorial/errors.html 等を参考のこと。

"""


class SampleError(Exception):
    def __init__(self, *__args):
        super().__init__(*__args)       

        self.__name = 'SampleError'

    def __str__(self):
         if (SupStr := super().__str__()):
             return self.__name + ' ' + SupStr
         else:
             return self.__name


try:
    raise SampleError('エラーメッセージ')
#    raise SampleError  # エラーメッセージ無しも可能

except SampleError as ExptInst:
    print(type(ExptInst))
    print(ExptInst.args)
    print(ExptInst)  # エラーメッセージの前にSampleErrorが追加されている。


★サンプルプログラムダウンロード★



★出力結果★  『 32行目のprint(ExptInst) 出力で、エラーメッセージの前にSampleErrorが追加されている。』

<class 'main.SampleError'>
('エラーメッセージ',)
SampleError エラーメッセージ



#Python #Python3
#例外 #例外クラス
#ユーザー定義例外 #ユーザー定義例外クラス
#エラーメッセージ
#Exception
#try
#raise
#except