Python はじめました:raise 文
Python.use(better) # Python はじめました《記事一覧》
raise 文
《著》小粒ちゃん+α《監修》小泉ひよ子とタマゴ倶楽部
第0版♪2001/03/02 ● 第1版♪2003/05/25 ● 第2版♪2004/06/01 ● 第3版♪2009/02/28
raise 文〈Python 3.0 版〉
% python3.0 >>> "ABC".index("@") Traceback (most recent call last): File "", line 1, in ValueError: substring not found
ここでは、メソッド index の引数に指定した文字列 "@" が存在しないので、例外 ValueError を生成して、エラーメッセージを出力します。また、例外は raise 文を使っても生成できます。
■ 事例
def index(s, t): if t in s: return s.index(t) else: raise ValueError("{0!r} not found".format(t)) % python3.0 -i ex.py >>> index("ABC","C") 2 >>> index("ABC","@") Traceback (most recent call last): File "", line 1, in ... raise ValueError("{0!r} not found".format(t)) ValueError: '@' not found
関数 index は、引数 s に引数 t が含まれるときには、メソッド index に準拠しますが、そうでないときは、例外 ValueError を生成するとともに、エラーメッセージを出力します。
ファイル〈Python 2.x 版〉
def index(s, t): if t in s: return s.index(t) else: raise ValueError,"%r not found"%t % python2.6 -i ex26.py >>> index("ABC","C") 2 >>> index("ABC","@") Traceback (most recent call last): File "", line 1, in ... raise ValueError,"%r not found"%t ValueError: '@' not found
《Note》Python 3.0 では、構文規則の改訂に伴い、次のように、
% python3.0 -i ex26.py
...
raise ValueError,"%r not found"%t
^
SyntaxError: invalid syntax
例外 SyntaxError を生成して、エラーメッセージを出力します。
Last updated♪09/03/10