我正在为特定于域的语言实现一个解析器,并且希望能够引发语法错误。引发此异常时如何设置文件名、行号和偏移量?
例外 语法错误
当解析器遇到语法时引发
错误。这可能发生在 import 语句、exec 语句、
调用内置函数 eval() 或 input(),或者读取
初始脚本或标准输入(也可以交互)。
此类的实例具有属性 filename、lineno、offset 和
文本以便更轻松地访问详细信息。异常实例的str()
仅返回消息。
Source: https://docs.python.org/3.2/library/exceptions.html#SyntaxError https://docs.python.org/3.2/library/exceptions.html#SyntaxError
答案是:
>>> raise SyntaxError('End quote missing', ("test.py", 1000, 11, "print 'bar"))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "test.py", line 1000
print 'bar
^
SyntaxError: End quote missing
第二个参数必须是 4 元组。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)