【问题标题】:Is nested begin/rescue/ensure valid?嵌套的开始/救援/确保有效吗?
【发布时间】:2015-10-06 18:03:37
【问题描述】:

这对我来说似乎没问题,我找不到任何其他说明的文档,但我希望它得到验证。无论出于何种原因,我有一段可能会失败的代码,如果它确实失败了,请确保在它之后保护它,然后无论发生什么都需要执行一些代码。这似乎需要一个嵌套的开始/确保块。那有效吗? (这里没有实际的救援,只有那种类型的块。)

代码如下:

  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

【问题讨论】:

  • @asiniy 关于它周围问题的有趣文章,但它指出:“Ruby 不允许我们嵌套异常。”什么?嵌套异常是语言中固有的,除非我完全误解了这个陈述。
  • @asiniy 那篇文章谈论的是完全不同的东西。它与这个问题根本无关。
  • 另一个更新的资源:@​​987654322@

标签: ruby-on-rails rescue


【解决方案1】:

这是一个完全有效的方法。通常需要嵌套,有时使用与您在此处所做的相同的方法,有时通过调用堆栈。

【讨论】:

  • meagar,你是绝对正确的。谢谢你。获取或设置状态的错误会影响我的解决方案。已编辑我的答案以反映您的敏锐观察。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-11
  • 1970-01-01
  • 2018-12-26
  • 2013-04-18
  • 1970-01-01
相关资源
最近更新 更多