コンテンツにスキップ

Top

Python での例外処理。

以下のソースでゼロ除算エラーを発生させて、実際に取得します

1
2
3
4
5
6
7
8
def exception():
    try:
        1 / 0 
    except Exception as e:
        print("exception:{}".format(e))

if __name__ == '__main__':
    exception()

Exceptionだとすべての例外を拾ってしまいます。例えばゼロ除算のエラーだけ拾いたくて他のエラーはそのままスルー(raise)させたいのであれば限定できます。

1
2
3
4
5
6
7
8
def exception():
    try:
        1 / 0
    except ZeroDivisionError as e:
        print("exception:{}".format(e))

if __name__ == '__main__':
    exception()

その他の例外と一緒に複数書くこともできます。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
def exception():
    try:
        1 / 0
    except TypeError as e1:
        print("exception:{}".format(e1))
    except ZeroDivisionError as e2:
        print("exception:{}".format(e2))

if __name__ == '__main__':
    exception()

さらに、特定の例外とその他全部の例外といった書き方は以下みたいになります。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
def exception():
    try:
        1 / 0
    except ZeroDivisionError as e1:
        print("exception:{}".format(e1))
    except Exception as e:
        print("exception:{}".format(e))

if __name__ == '__main__':
    exception()

以上!