概要
Pythonでraiseを使った例外処理を行うことがあったので、そのときのメモ
状況
Pythonで特定の例外処理を行いときに遭遇。
例えば
import sys def main(): a = int(input('数字を入力:')) if a > 10: print('10以下を指定して下さい') sys.exit() if __name__ == '__main__': main()
のようにどういうときに例外が分かっている状況。
結論
classで新たに例外処理を自作すればいい。 上記の場合、
class NumError(Exception): pass def main(): a = int(input('数字を入力:')) if a > 10: raise NumError('10以下を指定して下さい') if __name__ == '__main__': main()
上記のコードのclass NumError(Exception)
が例外処理を発生させるクラスで自作できる。
利点として
- エラーが分かりやすいためにデバッグがしやすい
- コードの可読性が上がる
また、クラスの中にloggging
を利用すれば、ログとして残すことも可能。