异常处理,关于另一个对象引发的错误

时间:2017-02-05 04:55:19

标签: ruby error-handling

如果条件符合,我有一个名为graph的类,它已经引发了不同的ArgumentError。我需要实现我自己的类,使用graph作为类对象。我的特定方法的返回值取决于graph内部方法引发的错误消息。例如:

如果graph有一个名为graphMethod的方法:

def graphMethod(value)
  raise ArgumentError, "bad value, need handling" if value == 0
  raise ArgumentError, "bad value, but don't need handling" if value == 1
  #do stuff
end

我的班级有一个名为myMethod的方法:

def myMethod
  graph = graph.new
  begin
  #notice I'm calling graphMethod multiple times
    graph.graphMethod(1)
    graph.graphMethod(0)
    graph.graphMethod(1)
  rescue ArgumentError => e
  #I only want to handle the case when 0 is passed in
    return false if e.message == "bad value, need handling"
  end

  return true #true when graphMethod raises an ArgumentError, but the value passed into graphMethod is 1
end

如果只处理具有相同错误类型的某些错误消息,我如何解释graph引发的错误消息?

到目前为止,我已尝试在value内检查myMethod,但未使用graphMethod引发的错误消息,但这是多余的,并且在我的实际graph中所以检查的案例比这复杂得多。我想有一种可以做到的方法是每次调用begin...rescue时使用graphMethod,但我确信有更好的方法。

0 个答案:

没有答案