Python_例外処理

例外の捕捉

特徴

  • try-exceptを定義します。try-catchではありません。「except 例外の種類:」で括ります。
  • 「except 例外の種類 as 変数:」 と記述すると、エラーの情報を持つ変数を定義できます。
    • import tracebackで例外情報を取得できます。
  • elseは「try句内で例外が発生せずに最後まで処理が進んだ」場合に実行します。
  • finallyは「例外の発生に関係なく」最後に実行します。

サンプル


#!/usr/bin/env python
# -*- coding: UTF-8 -*-
# vim:fileencoding=utf-8
# coding=utf8


def main(num):
    try:
        ret = 10 / num
        print(ret)
    except:
        print("---> except")
        import traceback
        traceback.print_exc()
    else:
        print("---> else statement")
    finally:
        print("---> finally statement")


if __name__ == "__main__":
    main(1)
    main(0)

例外の発生

raise

raiseを使用すると、故意に例外を発生させることが出来ます。


#!/usr/bin/env python
# -*- coding: UTF-8 -*-
# vim:fileencoding=utf-8
# coding=utf8


def main():
    try:
        raise NameError('error message')
    except NameError as e:
        print(e)


if __name__ == "__main__":
    main()


関連ページ