Ich versuche zu verstehen, wie Fehler zwischen den Klassen in Ruby propagieren. Ich habe dies so weit:Kannst du vor bestimmten Fehlern mit Nachrichten in Ruby retten?
class User
def charge
puts "charging order soon"
raise RuntimeError.new("This is a runtime error")
rescue ArgumentError
puts "should never gets here"
end
end
class Runner
def run
begin
User.new.charge
rescue RuntimeError => e
puts e.message
end
end
end
Runner.new.run
Als ich dies ausführen, bekomme ich diese das Recht scheint:
$ ruby errors.rb
charging order soon
This is a runtime error
Innenläufer, kann ich von der RuntimeError
mit einer bestimmten Nachricht retten? Wenn ich mehrere RuntimeErrors
um meine Anwendung ausgelöst habe, gibt es irgendeine Möglichkeit für die Runner's Rescue-Klausel nur für RuntimeErrors mit bestimmten Nachrichten ausgelöst werden?
Können Sie erklären, warum die Dokumentation vorschlägt, eine Unterklasse von 'StandardError' zu erstellen und dann bestimmte Ausnahmetypen davon zu erben. Ich verstehe nicht wirklich, warum wir das tun würden: https://ruby-doc.org/core-2.2.0/Exception.html – Jwan622