在Python中引发错误,排除s中的最后一级

2024-10-02 04:18:00 发布

您现在位置:Python中文网/ 问答频道 /正文

所以,我正在开发这个有索引器的类。我想抛出(或者用Python术语“raise”)一个索引器异常。好吧,这很微不足道

if errorCondition:
    raise IndexError("index out of range")

但是,当此代码在控制台中运行并发生错误时,堆栈跟踪还包括引发错误的行:

^{pr2}$

我觉得这有点奇怪,我想对实现者隐藏类的内部工作方式,而不是提供关于外部模块的文件、行和代码提取的信息。在

有什么办法解决这个问题吗?引发错误的所有要点是提供足够的信息来描述函数调用出错的原因,而不是在外部代码中引发错误的位置。在


Tags: of代码信息indexif堆栈错误方式
1条回答
网友
1楼 · 发布于 2024-10-02 04:18:00

如果您将代码作为.pyc字节码文件分发(通常在第一次导入模块时自动生成),或者设法使生成的.pyc文件没有指向.py源文件的正确路径(通过移动/删除源文件),堆栈跟踪将忽略源代码行。在

您可以使用compileallstdlib模块控制字节码文件的生成方式:http://docs.python.org/2/library/compileall.html

正如评论者指出的,这是不寻常的-额外的信息可以节省调试生产问题的宝贵时间。在

相关问题 更多 >

    热门问题