Ausnahmebehandlung ist die Verarbeitung, wenn ein Fehler auftritt. Es ist praktisch, eine Ausnahmebehandlung zu schreiben, um die Fehlerursache zu identifizieren und Probleme auf der Systemseite zu vermeiden.
Schließen Sie den Teil, der wahrscheinlich das Ziel des Fehlers ist, mit begin ein und schreiben Sie die Verarbeitung, wenn der Fehler bei der Rettung auftritt.
begin
100 / 0
rescue
p "Bricht nicht bei 0"
end
puts "Guten Morgen"
Es ist auch möglich, mit einem Liner zu schreiben.
sample_1 = 10 / 0 rescue 0
sample_2 = 10 / nil rescue 0
puts sample_1 #=>0
puts sample_2 #=>0
Sie können nach der Rettung auch ein Argument angeben, um den Fehlerinhalt in einer Variablen zu speichern.
begin
10 / 0
rescue => e
puts e #=> divided by 0
end
Alternativ können Sie durch Angabe einer Fehlermeldung nach der Rettung Folgendes angeben: Sie können eine bedingte Verzweigung erstellen, um zu entscheiden, welcher Fehler zu nehmen ist und was zu tun ist.
begin
10 / 0
rescue NoMethodError
puts "Es gibt keine Methode"
rescue ZeroDivisionError
puts "Bricht nicht bei 0"
end
Es wird verwendet, wenn Sie explizit einen Fehler generieren und den Prozess unterbrechen möchten, wenn die Parameter nicht erwartet werden oder wenn ein nicht autorisierter Zugriff erfolgt.
begin
raise NoMethodError #Ausnahmeklasse, die Sie auslösen möchten
rescue => e
puts e
end
Es ist auch möglich, eine Fehlermeldung auszugeben.
begin
raise RuntimeError, "Laufzeit Fehler"
rescue => e
puts e
end
Wenn Sie eine Fehlermeldung erhalten, können Sie zurückkehren und sie erneut ausführen.
num = 0
begin
puts 10 / num
rescue ZeroDivisionError => e
puts e
num = 1
retry #Führen Sie den Startblock erneut aus
end
puts "Fertig"
Sie können eine Verarbeitung schreiben, die mit oder ohne Ausnahme ausgeführt wird.
begin
puts "Keine Ausnahmen"
rescue => e
puts e
ensure
puts "Absolut hier laufen!"
end
Recommended Posts