- 源文档为:https://docs.python.org/2.7/library/sys.html
- 以下来自谷歌翻译:
- 这个函数返回一个包含三个值的元组,该元组提供有关当前正在处理的异常的信息。返回的信息既针对当前线程也针对当前堆栈帧。如果当前堆栈帧没有处理异常,则从调用堆栈帧或其调用者那里获取信息,直到找到处理异常的堆栈帧为止。这里,“处理异常”被定义为“执行或执行了except子句”。对于任何堆栈帧,只能访问有关最近处理的异常的信息。
-
如果堆栈中的任何位置没有异常处理,则返回包含三个None值的元组。否则,返回的值是(type,value,traceback)。它们的含义是:type获取正在处理的异常的异常类型(一个类对象);值获取异常参数(与其关联的值或第二个引发的参数,如果异常类型是类对象,它总是一个类实例);回溯得到一个回溯对象(见参考手册),它在最初发生异常的地方封装了调用堆栈。
- 如果调用exc_clear(),则此函数将返回三个None值,直到在当前线程中引发另一个异常,或者执行堆栈返回到正在处理另一个异常的帧。
警告将回溯返回值分配给处理异常的函数中的局部变量将导致循环引用。这将防止在同一个函数中由局部变量引用的任何东西,或者通过垃圾收集回溯。由于大多数函数不需要访问回溯,所以最好的解决方案是使用像exctype,value = sys.exc_info()[:2]之类的东西来仅提取异常类型和值。如果您确实需要回溯,请确保在使用后删除它(最好使用try ... finally语句完成)或在不处理异常的函数中调用exc_info()。
注意从Python 2.2开始,当启用垃圾回收并且它们变得无法访问时,会自动回收这些周期,但避免创建周期仍然更有效。
sys.exc_info()
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- Apple Develop官方原文:Understanding and Analyzing Application...