Ruby救援自定义异常

时间:2018-11-16 14:40:30

标签: ruby exception custom-exceptions

在以下示例中:

class Foo
  class MyCustomerror < StandardError
    def message
      "My custom error"
    end
 end

 def self.do_standard
   1 / 0
 rescue StandardError => e
   puts e.message
 end

 def self.do_custom
   1 / 0
 rescue MyCustomerror => e
  puts e.message
 end
end

我的通话救援块有一个问题,该参数是MyCustomerror。 如果我调用Foo.do_standard,则调用救援块,但是当我调用具有MyCustomerror的Foo.do_custom救援块时,则不会调用。问题出在哪里?

1 个答案:

答案 0 :(得分:2)

您的代码中没有任何地方可以引发MyCustomError异常,因此没有什么可以挽救的。该代码可能引发的唯一异常是ZeroDivisionError