嵌套 begin/rescue/ensure 有效吗?
Is nested begin/rescue/ensure valid?
这对我来说似乎没问题,我找不到任何另有说明的文档,但我希望它得到验证。我有一段代码可能会失败,无论出于何种原因,确保在它确实失败后保护它,然后无论发生什么都需要执行一些代码。这似乎需要一个嵌套的 begin/ensure 块。那有效吗? (这里没有真正的救援,只是那种类型的块。)
代码如下:
begin
# save default state
begin
# save current state
# set state for this snippet
# snippet
ensure
# return current state or default if none
end
ensure
# schedule next execution of this code, always.
end
这是一个完全有效的方法。通常需要嵌套,有时使用与您在此处所做的相同的方法,有时通过调用堆栈。
这对我来说似乎没问题,我找不到任何另有说明的文档,但我希望它得到验证。我有一段代码可能会失败,无论出于何种原因,确保在它确实失败后保护它,然后无论发生什么都需要执行一些代码。这似乎需要一个嵌套的 begin/ensure 块。那有效吗? (这里没有真正的救援,只是那种类型的块。)
代码如下:
begin
# save default state
begin
# save current state
# set state for this snippet
# snippet
ensure
# return current state or default if none
end
ensure
# schedule next execution of this code, always.
end
这是一个完全有效的方法。通常需要嵌套,有时使用与您在此处所做的相同的方法,有时通过调用堆栈。