如果我想既挽救潜在的错误又捕获潜在的抛出,我应该如何嵌套它们?下面两个是等价的吗?这只是一个偏好问题?
begin
catch(:some_throw) do
...
end
rescue SomeError
...
end
catch(:some_throw) do
begin
...
rescue SomeError
...
end
end
最佳答案
这是一个基于意见的问题,人们可以以任何一种方式争论。所以,在我看来...
如果您打算通过 throw
返回一个值,那么第二个选项似乎很有用,因为它可以让您rescue
错误并throw
> 某种默认值。
即使您只是使用 throw
和 catch
来管理循环迭代并在某些条件下打破循环,第二个选项似乎仍然更具可读性并封装了所有逻辑在 catch
block 内。
关于ruby - 救援与捕捉同时进行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34837057/