【问题标题】:rescuing multiple exception of the same type in Rails在 Rails 中拯救多个相同类型的异常
【发布时间】:2012-08-21 04:06:05
【问题描述】:

想象一下这个场景(只是一个示例)

file = open("/file1")
file2 = open("/file2")
file3 = open("/file3")

我该如何处理这种情况,我想要做的是允许不引发异常的语句在捕获任何可能引发的异常时运行,换句话说,我有 3 行可以引发相同的异常,应该如何这个要处理。我可以检查味精,但如果第一行抛出异常,接下来的两行将不会运行。

一个相关的问题是我可以嵌套救援块(意味着在救援块内抛出和救援异常吗?)

【问题讨论】:

    标签: ruby-on-rails ruby exception exception-handling


    【解决方案1】:

    您可能需要针对这种特定情况的循环:

    open_files = ['file1', 'file2', 'file3'].map do |file|
      begin
        File.open file
      rescue => e
        ...
      end
    end
    

    【讨论】:

      【解决方案2】:

      嗯,想通了。 不是最聪明的问题! 只需用不同的方法分别调用它们即可。

      Loadfile1()
      Loadfile2()
      Loadfile3()
      
      loadfile1()
      file1 = open("/file1")
      rescue......
      ...
      end
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-06-28
        • 1970-01-01
        • 2018-11-27
        • 2017-01-17
        • 2017-01-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多