我有一个特定的功能,它在某些情况下执行以下操作:
引发异常,'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。最好只创建两个单独的异常并单独捕获每个异常。