您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

如何在Python中使用自定义消息引发相同的Exception?

如何在Python中使用自定义消息引发相同的Exception?

更新:

将消息附加到当前异常并重新引发它:(外部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 exception
except ValueError as e:
    print(" got error of type "+ str(type(e))+" with message " +e.message)

这也将做正确的事情 自ValueError。例如UnicodeDecodeError

请注意,您可以添加任意内容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))

根据目的,您还可以选择在自己的变量名下添加额外的信息。对于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
python 2022/1/1 18:47:17 有330人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶