当前位置: 首页 > 面试题库 >

如何在Python3中获取异常详细信息

刁茂才
2023-03-14
问题内容

我想获取Python3中Exception的详细信息

例如…在foo.py中

import sys

try:
  {}.encode('utf8')
except:
  err = sys.exc_info()[0]

  print("itself\t", err)
  print(".args\t", err.args)

  print("dir\t", dir(err.args))
  print("type\t", type(err.args))

  print("vars\t", vars(err))

  print("--------k,v in vars---------")
  for k,v in vars(err).items():
    print(k)
    print(v)

和标准输出是…

itself   <class 'AttributeError'>
.args    <attribute 'args' of 'BaseException' objects>
dir      ['__class__', '__delattr__', '__delete__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__get__', '__getattribute__', '__gt__', '__hash__', '__init__', '__le__', '__lt__', '__name__', '__ne__', '__new__', '__objclass__', '__qualname__', '__reduce__', '__reduce_ex__', '__repr__', '__set__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__']
type     <class 'getset_descriptor'>
vars     {'__init__': <slot wrapper '__init__' of 'AttributeError' objects>, '__doc__': 'Attribute not found.', '__new__': <built-in method __new__ of type object at 0x821c3a0>}
--------k,v in vars---------
__init__
<slot wrapper '__init__' of 'AttributeError' objects>
__doc__
Attribute not found.
__new__
<built-in method __new__ of type object at 0x821c3a0>

我想从实例“ err”中获得有关此内置异常类的更多信息,

  • 文件:foo.py
  • 行:4
  • 讯息:“ dict”对象没有属性“ encode”

就像这段代码的标准输出

{}.encode('utf8')

这个

Traceback (most recent call last):

  File "foo.py", line 2, in <module>

    {}.encode('utf8')

AttributeError: 'dict' object has no attribute 'encode'

问题答案:

使用该traceback模块可打印当前位置或给定异常的回溯。

您没有说明期望的输出,但是无论哪种traceback模块,该模块很可能都能产生最适合您的需求的输出。



 类似资料:
  • 问题内容: 在WooCommerce中,从以下代码行: 如何从订单ID获取WooCommerce订单详细信息? 问题答案: 3.0版以上的WOOCOMMERCE订单 自Woocommerce大型主要更新3.0+以来,事情已经发生了很多变化: 对于 对象,无法像以前一样直接访问属性,并且会引发一些错误。 现在,对象实例需要使用new 以及 getter和setter方法。 此外,还有一些用于订购商品

  • 问题内容: 我要获取exe / dll / sys文件的“文件描述”和“版权”,如右键单击文件并选择属性时,在“详细信息”选项卡中所示。 问题答案: 使用Windows API,您可以调用VerQueryValue以获取该信息。JNA有一个用于访问此API的类,称为Version。 这另一个问题有一些代码示例可以帮助您入门: 获取.exe的版本信息 这是一个读取产品名称的C代码示例,您可以将其转换

  • 嗨,我尝试用InMemoryDao获取userDetailsService。但是我得不到,我试过@Autowired,@ Inject(userdailsservice,InMemoryDaoImpl,InMemoryManager...)但是我不能让它工作。 有公共类安全扩展WebSecurityC 只尝试了WebSecurityCon

  • 通过方法,我可以获取异常的详细消息,我只需要一些细节,比如该异常的会话信息:、Session id:、.。 注: 具体地说,我使用

  • 从以下行代码输入: 如何从订单id获取WooCommerce订单详细信息?