所以,我正在开发这个有索引器的类。我想抛出(或者用Python术语“raise”)一个索引器异常。好吧,这很微不足道
if errorCondition:
raise IndexError("index out of range")
但是,当此代码在控制台中运行并发生错误时,堆栈跟踪还包括引发错误的行:
^{pr2}$
我觉得这有点奇怪,我想对实现者隐藏类的内部工作方式,而不是提供关于外部模块的文件、行和代码提取的信息。在
有什么办法解决这个问题吗?引发错误的所有要点是提供足够的信息来描述函数调用出错的原因,而不是在外部代码中引发错误的位置。在
Tags:
如果您将代码作为.pyc字节码文件分发(通常在第一次导入模块时自动生成),或者设法使生成的.pyc文件没有指向.py源文件的正确路径(通过移动/删除源文件),堆栈跟踪将忽略源代码行。在
您可以使用
compileall
stdlib模块控制字节码文件的生成方式:http://docs.python.org/2/library/compileall.html正如评论者指出的,这是不寻常的-额外的信息可以节省调试生产问题的宝贵时间。在
相关问题 更多 >
编程相关推荐