【问题标题】:What is the proper method of printing Python Exceptions?打印 Python 异常的正确方法是什么?
【发布时间】:2011-03-20 20:21:02
【问题描述】:
        except ImportError as xcpt:
            print "Import Error: " + xcpt.message

在 2.6 中收到弃用警告,因为消息正在消失。 Stackoverflow

您应该如何处理 ImportError? (注意,这是一个内置的异常,不是我自己做的......)

【问题讨论】:

    标签: python exception


    【解决方案1】:

    正确的做法是

    xcpt.args
    

    只有message 属性会消失。异常将继续存在,并且将继续有参数。

    阅读此内容:http://www.python.org/dev/peps/pep-0352/ 删除messages 属性有一些合理性。

    【讨论】:

      【解决方案2】:

      如果要打印异常:

      print "Couldn't import foo.bar.baz: %s" % xcpt
      

      异常定义了一个__str__ 方法来创建它们自身的可读版本。我不会为“导入错误:”而烦恼,因为异常会自行提供。如果您向异常添加文本,请根据您尝试执行的代码使其成为您所知道的内容。

      【讨论】:

      • 当我打印 xcpt 时,我得到“没有名为tribes.models 的模块”,它没有给我异常标题,即使它隐含在消息中。
      猜你喜欢
      • 1970-01-01
      • 2013-08-31
      • 1970-01-01
      • 2012-02-17
      • 2012-03-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-25
      相关资源
      最近更新 更多