更新: 对于Python 3,请检查 Ben的答案
将消息附加到当前异常并重新引发它:(外部try / except只是为了显示效果)
对于python 2.x,其中x> = 6:
try: try: raise ValueError # something bad... except ValueError as err: err.message=err.message+" hello" raise # re-raise current exceptionexcept ValueError as e: print(" got error of type "+ str(type(e))+" with message " +e.message)这也将做正确的事情 ,如果err
是 衍生 自
ValueError。例如
UnipreDepreError。
请注意,您可以添加任意内容
err。例如
err.problematic_array=[1,2,3]。
编辑: @Ducan在注释中指出以上内容不适用于python
3,因为
.message它不是的成员
ValueError。相反,您可以使用此代码(有效的python 2.6或更高版本或3.x):
try: try: raise ValueError except ValueError as err: if not err.args: err.args=('',) err.args = err.args + ("hello",) raise except ValueError as e: print(" error was "+ str(type(e))+str(e.args))编辑2:
根据目的,您还可以选择在自己的变量名下添加额外的信息。对于python2和python3:
try: try: raise ValueError except ValueError as err: err.extra_info = "hello" raise except ValueError as e: print(" error was "+ str(type(e))+str(e)) if 'extra_info' in dir(e): print e.extra_info


