【发布时间】:2021-05-23 07:16:19
【问题描述】:
我想在我的代码中引发自定义异常,但显示了不必要的堆栈信息。
简单代码:
def func1(val):
if isinstance(val, int) is True:
print('value:', val)
else:
raise TypeError('must be integer')
def func2():
func1(1)
func1('1')
func2()
结果:
value: 1
Traceback (most recent call last):
File "c:/Users/sss/etc/exceptionTest/exceptionTest.py", line 17, in <module>
func2()
File "c:/Users/sss/etc/exceptionTest/exceptionTest.py", line 14, in func2
func1('1')
File "c:/Users/sss/etc/exceptionTest/exceptionTest.py", line 9, in func1
raise TypeError('must be integer')
TypeError: must be integer
最后一个堆栈是raise 代码所在的位置,它不是必需的。我怎样才能删除它?
【问题讨论】:
-
虽然您可以删除堆栈跟踪,但处理此问题的正确方法是捕获异常、处理它并打印要显示的异常部分。
标签: python exception traceback raise