【问题标题】:How to rescue an exception from inside a rescue如何从救援内部救援异常
【发布时间】:2021-10-24 00:00:56
【问题描述】:
def func 
   some code...
   rescue x,y,z
      do something...

我有一个函数,我试图拯救一个异常,然后在救援内部做一些事情。我想了解在救援块内再次出现异常时如何处理。这是一个极端情况,绝对有必要。

如果救援内部再次出现异常,我希望能够处理它。任何建议表示赞赏。

【问题讨论】:

    标签: ruby exception rescue


    【解决方案1】:

    您可以简单地将救援异常嵌套在另一个救援异常中,并且可以根据具体情况使用多种不同的方法来实现,但这里有几种:

    begin
    
      do_something
    
    rescue
    
      do_something_else rescue do_this_instead
    
    end
    

    begin
    
      do_something
    
    rescue
    
      begin
        do_something_else
      rescue
        do_this_instead
      end
    
    end
    

    【讨论】:

    • 这行得通!万分感谢!还要跟进这个问题,如果我救出了异常并做了一些事情,但随后再次引发异常,就像系统首先在没有救援的情况下抛出错误一样,我该怎么做??
    • 很抱歉,但我不确定我是否理解这个问题。你能澄清一下吗?
    • 我的意思是问,如果我做类似救援 x,y,z => e 的事情,那么如果我将这个 e 作为参数传递给另一个函数并在那里提高 e,它还会打印吗整个错误回溯,就像它最初在没有救援块的情况下一样。
    • 对不起,其他人可能需要为您解答。我个人在我的代码中出于各种目的使用救援异常,但我几乎没有处理复杂错误回溯的经验。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-06
    • 1970-01-01
    相关资源
    最近更新 更多