可能重复的问题:
如何在Python异常堆栈中不显示raise行
内置异常例如NameError
等会给出一个回溯,指向代码中发生异常的位置。我正在编写一个实用模块时,如果使用我的模块的代码引发了异常,最后出现在异常前面的是我的raise WhateverError
。
有没有办法在Python中引发异常,并使回溯停留在一帧之上,就像内置异常一样(而不编写C代码)?
可能重复的问题:
如何在Python异常堆栈中不显示raise行
内置异常例如NameError
等会给出一个回溯,指向代码中发生异常的位置。我正在编写一个实用模块时,如果使用我的模块的代码引发了异常,最后出现在异常前面的是我的raise WhateverError
。
有没有办法在Python中引发异常,并使回溯停留在一帧之上,就像内置异常一样(而不编写C代码)?
纯Python无法提供一种方式来改变现有的traceback对象或创建任意的traceback对象。
>>> exc_info[2].tb_next = None
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: readonly attribute
>>> types.TracebackType()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: cannot create 'traceback' instances