Pythonで例外処理

概要

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)が例外処理を発生させるクラスで自作できる。
利点として

  1. エラーが分かりやすいためにデバッグがしやすい
  2. コードの可読性が上がる

また、クラスの中にlogggingを利用すれば、ログとして残すことも可能。