我的代码可以引发异常或返回('blas.ldflags=', '-LC:\\openblas -lopenblas')
或True
。我想运行相同的代码
False
我试图将条件放在True
子句中并且它有效:
except
我在文档中没有看到这样的结构 - 这是正确的吗?
答案 0 :(得分:3)
它在语法上是有效的,就像"无色的绿色想法一样疯狂地睡觉。"语法上是有效的英语,但它完全没有意义,也没有做你想做的事。
IndexError or a
将评估为IndexError
,因此except
仅触发IndexErrors。在任意布尔条件下都没有except
触发器的语法支持。
如果你想在函数返回True或引发异常时做某事,你可以设置"做事情"在两种情况下都标记,然后检查标志:
try:
do_the_thing = fun(True, True)
except IndexError:
do_the_thing = True
if do_the_thing:
do_it()
答案 1 :(得分:1)
如果您不需要区分fun
返回true并引发索引错误,则可以自行引发IndexError。
try:
if fun(True, True):
raise IndexError
except IndexError:
print("error")