3 Stimmen

Muster für die Anzeige von Fehlern

In meinem Code verwende ich normalerweise den folgenden Aufbau:

module MyLib
  VERSION = "0.1.1"
  ERROR = [
    "You can either give one arg and a block or two args, not both.",
    "Yadda yadda..."
  ]
end

Dann irgendwo in meinem Code:

def my_method(*args, &blk)
  raise(ArgumentError, MyLib::ERROR[0]) if (...condition snipped...)
end

Gibt es eine bessere Möglichkeit, Fehlermeldungen zu definieren?

7voto

Michael Kohl Punkte 64654

Sie können Ihre eigenen Ausnahmeklassen definieren:

module MyLib
  class FooError < ArgumentError
    def to_s
      "You can either give one arg and a block or two args, not both.",
    end
  end
end

Wenn Sie sie nun erhöhen:

raise MyLib::FooError
MyLib::FooError: You can either give one arg and a block or two args, not both.
    from (irb):46

Und wenn Sie damit umgehen wollen:

rescue MyLib::FooError

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X