Python で SyntaxError を自前で投げる
Python で SyntaxError を自前で raise するには次のようにする。
raise SyntaxError("エラーメッセージ", (ファイル名, 行番号, カラム桁数, ソース行))
やってみる。
>>> raise SyntaxError("ERROR MESSAGE", ('foo.py', 123, 2, 'x = 999')) Traceback (most recent call last): File "<stdin>", line 1, in <module> File "foo.py", line 123 x = 999 ^ SyntaxError: ERROR MESSAGE
ほほう。
SyntaxError を継承したクラスでもいいようだ。
>>> class TemplateSyntaxError(SyntaxError): ... pass ... >>> raise TemplateSyntaxError("ERROR MESSAGE", ('foo.py', 123, 2, 'x = 999')) Traceback (most recent call last): File "<stdin>", line 1, in <module> File "foo.py", line 123 x = 999 ^ __main__.TemplateSyntaxError: ERROR MESSAGE
ほほう。これは使える。
#注意:undocumented らしいので、将来使えなくなっても文句は言わない。