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

如何在变量中保存traceback / sys.exc_info()值?

子车飞文
2023-03-14
问题内容

我想将错误的名称和追溯详细信息保存到变量中。这是我的尝试。

import sys
try:
    try:
        print x
    except Exception, ex:
        raise NameError
except Exception, er:
    print "0", sys.exc_info()[0]
    print "1", sys.exc_info()[1]
    print "2", sys.exc_info()[2]

输出:

0 <type 'exceptions.NameError'>
1 
2 <traceback object at 0xbd5fc8>

所需输出:

0 NameError
1
2 Traceback (most recent call last):
  File "exception.py", line 6, in <module>
    raise NameError

PS:我知道可以使用追溯模块轻松完成此操作,但是我想在此了解sys.exc_info()[2]对象的用法。


问题答案:

这是我的方法:

>>> import traceback
>>> try:
...   int('k')
... except:
...   var = traceback.format_exc()
... 
>>> print var
Traceback (most recent call last):
  File "<stdin>", line 2, in <module>
ValueError: invalid literal for int() with base 10: 'k'

但是,您应该看看traceback文档,因为您可能会发现更合适的方法,这取决于您以后要如何处理变量…



 类似资料:
  • 我对node js和expressjs框架很陌生。我正在开发一个web应用程序,我被卡住了。我已经设置了所有的数据库要求,所有的工作都很好,现在我想把一些数据保存到数据库中,我把数据存储在一个变量中,但不幸的是,存储在变量(MyID)中的数据没有保存。这是我的密码 var=MyID app.post(“/AddContact”,function(req,res){ }

  • 问题内容: 如何打印保存对象的变量名? 例如,我有: 我将如何打印“ ob”? 问题答案: 对象不 具有 名称,除非你碰巧使用的一类,它允许给予一个每一个对象(例如,通过与取回的变量)。 特别是,用于引用对象的任何特定变量的名称对于对象本身是完全未知的。所以你不能做: (请记住,几个变量都可以引用同一个对象,并且不必有 任何 命名变量引用一个对象。)

  • 从单词导入随机 导入word_dict def get_word(): word=random.choice(list(WORD_DICT.VALUES())) 返回word.Upper() 所以我正在导入这个字典,从中获取一个随机值,并将其保存在一个变量中。现在如果我想要得到相同随机值的键。我怎么才能拿到钥匙?有人帮忙吗?提前谢谢你。

  • 问题内容: 如何在以后要在另一个控制器中访问的控制器中存储变量?例如: 我该怎么做? 问题答案: 在根范围内设置的变量可通过原型继承供控制器范围使用。 这是@Nitish演示的修改后的版本,它更加清楚地显示了这种关系:http : //jsfiddle.net/TmPk5/6/ 注意,在模块初始化时设置了rootScope的变量,然后每个继承的作用域都有自己的副本,可以独立设置(该函数)。另外,r

  • 我希望在Youtube搜索中提取第一个链接的url,而不必加载视频页面。 href="/watch? v=R8tVZ_QfYe4"class="yt-uix-sesionlink yt-uix-tile-link yt-用户界面-ellipsis yt-用户界面-ellipsis-2 spf-link"data-setsionlink="itct=CB0Q3DAYACITCLqBt--IyMkCF

  • 本文向大家介绍在Python中利用pickle保存变量的实例,包括了在Python中利用pickle保存变量的实例的使用技巧和注意事项,需要的朋友参考一下 在工作中出于某些原因,我们可能需要将变量保存下来,这样下次就可以直接去赋值而不用重新执行某些重复耗时的操作了,这里我们用到了Python的pickle包来做变量的存储和变量加载,大家注意这个包是python自带的,不需要另外再去安装。 pick