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
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
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>'
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
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.
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