I have a method that checks something and which can
- raise an exception itself
- return True
- return False
I want catch the exception properly to raise one myself, but also if the test returns False. The incorrect way to do this is
try:
if not check():
raise MyException()
except:
raise MyException()
as the first MyException is caught after the except again. One way to handle this properly would be
try:
flag = check()
except:
raise MyException()
else:
if not flag:
raise MyException()
Is this the only way of dealing with this situation, or is there another way to handle it more efficient, getting rid of the flag variable?
except:catching, always only catch specific exceptions.raise?