Python2覚書 例外処理
try,catch構文
例外が発生した場合の処理は、try,catchを使います。
例外の種類にかかわらず一括処理を行う場合
try: print 1/0 except: print "error" else: print "OK"
error
例外の種類に応じて処理を変える場合sysモジュールで定義されている例外オブジェクトを利用します。
import sys try: list = [0 , 1, 2] print list[5] print 1/0 except ZeroDivisionError: print "error: zero division" except IndexError: print "error: out of range" else:
error: out of range
finally文
tryで例外が発生したとしても続けて処理を行いたい場合は、finally文の中にその処理を書きます。
import sys try: print 1/0 except ZeroDivisionError: print "error: zero division" finally: print "finally"
error: zero division
finally
例外クラスの引数
受け取った例外を引数として利用する場合は、exceptionの後に続けて記述します。
except exception,arg:
raise文
例外を発生させるにはraise文を用います。
try: raise NameErro except NameError: print "no name variable or function"
例外クラスの定義
例外クラスを継承してユーザー定義の例外を作ることができます。
class myError(RuntimeError): def __init__(self, att): self.att = att try: raise myError("my error") except myError,e: print e.att
my error