我有一个特定的功能,它在某些情况下执行以下操作:

引发异常,'someError'

并可能在其他情况下引发其他异常。

我想对函数引发异常、'someError' 的情况和函数引发其他异常的情况进行不同的处理。

例如,我尝试了以下操作,但没有按我预期的那样工作。

try:
    raise Exception, 'someError'
except Exception('someError'):
    print('first case')
except:
    print ('second case')

这将打印“第二种情况”...

最佳答案

可以查看异常的message属性

>>> try:
...     raise Exception, 'someError'
... except Exception as e:
...     if e.message == 'someError':
...             print 'first case'
...     else:
...             print 'second case'
...
first case

但它很hacky。最好只创建两个单独的异常并单独捕获每个异常。

10-08 18:10