Behandlung von Ruby-Ausnahmen

Über diesen Artikel

Bei meiner Jobwechselaktivität habe ich die Ausnahmebehandlung manchmal als technisches Problem beschrieben, aber ich habe sie noch nie erlebt, daher handelt es sich um eine Ausgabe

Was ist Ausnahmebehandlung?

begin

#Geben Sie Code an, um Probleme beim Ausführen von Programmen zu erkennen
#Schreiben Sie Code, der wahrscheinlich einen Fehler verursacht

rescue

#Beschreiben Sie, wie Sie reagieren sollen, wenn ein Problem erkannt wird

end

Eine Ausnahme auslösen

Mit dem folgenden Code kann "100/0" nicht ausgeführt werden, daher wird die Verarbeitung bei "Antwort = 100 / Nummer" beendet. ZeroDivisionError ist der entsprechende Fehler und beschreibt die Verarbeitung, die Sie ausführen möchten, wenn diese Ausnahme auftritt.

number = 0
answer = 20 / num
puts answer
puts 2

=>`/': divided by 0 (ZeroDivisionError)
	from Main.rb:4:in `<main>'

Ausnahmebehandlung

Wenn Sie wie folgt schreiben, wird der Prozess gestoppt, da normalerweise eine Ausnahme bei "100/0" auftritt. Da der Rettungsprozess jedoch ausgeführt wird, wird der Prozess bis zum Ende ausgeführt.

puts 1
begin
    #Schreiben Sie den Code, den Sie erkennen möchten
    number = 0
    answer = 20 / num
    puts answer
rescue ZeroDivisionError => e
   #Beschreiben Sie den Prozess, den Sie ausführen möchten, wenn ZeroDivisionError auftritt (registrieren Sie einen Ausnahmebehandler).
    p e
ensure
    puts 2
end


=>
1
#<ZeroDivisionError: divided by 0>
2

Was ist e?

Es ist ein ZeroDivisionError-Objekt (Variable), das die Details der aufgetretenen Ausnahme speichert. Mit anderen Worten, wenn Sie dies ausgeben, können Sie verstehen, warum der Fehler aufgetreten ist.

Ausgabe

Objekte haben verschiedene Nachrichten und können die erforderlichen Informationen wie unten gezeigt abrufen.

p e

puts e.message

p e.backtrace


=>
#<ZeroDivisionError: divided by 0>

divided by 0

["Main.rb:4:in `/'", "Main.rb:4:in `<main>'"]


Recommended Posts

Behandlung von Ruby-Ausnahmen
Ruby-Ausnahmebehandlung
Informationen zur Behandlung von Ruby-Ausnahmen
Ausnahmebehandlung
Ausnahmebehandlung Ausnahme
[Ruby] Ausnahmebehandlung in Funktionen
Java-Ausnahmebehandlung?
Informationen zur Ausnahmebehandlung
[Java] Ausnahmebehandlung
☾ Java / Ausnahmebehandlung
Informationen zur Behandlung von Java-Ausnahmen
Behandlung von Java-Ausnahmen
[Ruby] Ausnahmebehandlung, falls angegeben, zurückgeben
Praxis der Ausnahmebehandlung (ArithmeticException)
Spring Boot-Ausnahmebehandlung
[Java] Praxis der Ausnahmebehandlung [Ausnahme]
[Java] Informationen zur Behandlung von Try-Catch-Ausnahmen
Ausnahme
Verwendungsregeln für die Behandlung von Java-Ausnahmen
Ausnahmebehandlungstechniken in Java
[Inhouse-Studiensitzung] Behandlung von Java-Ausnahmen (26.04.2017)
[Rails] Wie schreibe ich eine Ausnahmebehandlung?
Ausnahmebehandlung mit einer Fluidschnittstelle
Schrittweises Verständnis der Behandlung von Java-Ausnahmen
[Für Java-Anfänger] Informationen zur Ausnahmebehandlung
Lösen mit Ruby AtCoder 1. Algorithmus Praktischer Test Eine Ausnahmebehandlung
[Ruby] Array
Rubin lernen 5
Ruby-Grundlagen
Ruby Review 2
Rubinzusatz
Ruby lernen 3
Ruby-Einstellung 2
Rubinproblem ⑦
Selbst gemachte Ausnahme
Ruby lernen 2
Java (Ausnahmebehandlung, Threading, Sammlung, Datei-E / A)
Tipps zur Behandlung von gRPC-Fehlern in Ruby
Rubin lernen 6
Ruby-Einstellungen 1
Rubin lernen 1
Ruby Review 1
try-catch-finally Ausnahmebehandlung Verwendung von Java
Ich möchte eine Struktur für die Ausnahmebehandlung entwerfen
Fragen in Java-Ausnahmebehandlung werfen und versuchen-fangen