以下内容:
catch :something do
print true
end
将true
打印到控制台。我认为catch
的意思是它只是由相应的throw
调用。
不太重要的是,是否有单线语法?我很惊讶catch :something { print true }
提出SyntaxError
。
答案 0 :(得分:4)
如果没有catch
,为什么会调用throw
块?
以前可能有throw
,程序员忘记在删除catch
时忘记删除throw
,或者不知道如何使用catch
。
但在这种情况下更有可能的是你没有问“如果没有throw
,为什么阻止执行?”该问题的答案是catch
块被执行到引发throw
的点。如果未引发throw
,则catch
块将完全执行。
是否有单行语法?
是。不要省略括号。
catch(:something){print true}