当我从标准库中得到运行时异常时,它几乎总是我的代码中的问题,而不是库代码中的问题。有没有办法截断异常堆栈跟踪,以便它不显示库包的内部?Python:将堆栈跟踪消除为库代码?
例如,我想获得这样的:
Traceback (most recent call last):
File "./lmd3-mkhead.py", line 71, in <module>
main()
File "./lmd3-mkhead.py", line 66, in main
create()
File "./lmd3-mkhead.py", line 41, in create
headver1[depotFile]=rev
TypeError: Data values must be of type string or None.
,而不是这样的:
Traceback (most recent call last):
File "./lmd3-mkhead.py", line 71, in <module>
main()
File "./lmd3-mkhead.py", line 66, in main
create()
File "./lmd3-mkhead.py", line 41, in create
headver1[depotFile]=rev
File "/usr/anim/modsquad/oses/fc11/lib/python2.6/bsddb/__init__.py", line 276, in __setitem__
_DeadlockWrap(wrapF) # self.db[key] = value
File "/usr/anim/modsquad/oses/fc11/lib/python2.6/bsddb/dbutils.py", line 68, in DeadlockWrap
return function(*_args, **_kwargs)
File "/usr/anim/modsquad/oses/fc11/lib/python2.6/bsddb/__init__.py", line 275, in wrapF
self.db[key] = value
TypeError: Data values must be of type string or None.
更新:加入answer的代码,这要归功于从亚历克斯的指针。
纯蒸馏水智慧,用的风格破折号混合...感谢亚历克斯! – 2010-04-11 06:44:06
@Mark,不客气 - 感谢您的荣誉! – 2010-04-11 15:32:28