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()