如何捕获str异常?

Anu*_*yal 2 python string exception

import sys
try:
    raise "xxx"
except str,e:
    print "1",e
except:
    print "2",sys.exc_type,sys.exc_value
Run Code Online (Sandbox Code Playgroud)

在上面的代码中引发了一个字符串异常虽然已经弃用,但我使用的第三方库仍然使用它.那么如何在不依赖于全部捕获的情况下捕获这样的异常,这可能是坏事.

除了str,e:没有抓住它?为什么?

系统:Python 2.5.2(r252:60911,2008年7月31日,17:28:52)[gCC 4.2.3(Ubuntu 4.2.3-2ubuntu7)] on linux2

pts*_*pts 6

generic except:子句是捕获所有str异常的唯一方法.

str例外是遗留的Python功能.在新代码中,您应该使用raise Exception("xxx")或引发自己的Exception子类,或者assert 0, "xxx".

  • @ S.Lott 3年后回复,为什么我会浪费一天或更多的时间来修复和测试第三方库,然后测试它,当我能在不到一个小时的时间内解决问题时,我认为这至少没有问题适用于小型测试项目 (2认同)