我有一个检查某些内容的方法,它可以:
- 自己引发异常
- 返回 True
- 返回 False
我想要正确地捕获这个方法可能引发的异常,并在测试返回 False 时也能引发异常。不正确的做法是:
try:
if not check():
raise MyException()
except:
raise MyException()
由于第一个MyException
在except
后被捕获了,因此正确处理这种情况的一种方法是
try:
flag = check()
except:
raise MyException()
else:
if not flag:
raise MyException()
这是唯一处理该情况的方式吗?还是有另外一种更有效的方法来处理它,摆脱 flag
变量?
except:
捕获异常,而是只捕获具体的异常。 - Martijn Pietersraise
呢? - Martijn Pieters