Dieser Artikel ist eine Ergänzung zu vielen Ausnahmebehandlungen. Insbesondere werde ich das Ergebnis der Überprüfung des nicht im Artikel eingeführten Musters belassen.
In der Funktion können Sie wie folgt schreiben.
def method
puts "hoge"
a = 1 / 0
rescue ZeroDivisionError
puts $!
end
Es ist eine Form, die Anfang und Ende weglässt. Im Falle einer solchen Form
a = 1 / 0
Ist selbstverständlich, dass ein Fehler verursacht wird. Aber was wenn:
def method
#Riesige Verarbeitung 1
#Verarbeitung, die wahrscheinlich einen Fehler verursacht
#Riesige Verarbeitung 2
rescue StandardError
puts $!
end
Übrigens ist es zweifelhaft, dass die Person, die diesen Code sieht, sofort die Verarbeitung sehen kann, die wahrscheinlich einen Fehler verursacht. In diesem Fall sollten Sie es wagen, Anfang und Ende zu schreiben.
def method
#Riesige Verarbeitung 1
begin
#Verarbeitung, die wahrscheinlich einen Fehler verursacht
rescue StandardError
puts $!
end
#Riesige Verarbeitung 2
end
Auf diese Weise können Sie sehen, wo der Fehler wahrscheinlich auftritt, und Sie müssen nicht viel scrollen, um die Rettung zu sehen. Übrigens, wenn Sie mit Rettung zurückkehren, wird die große Menge von Prozess 2 nicht verarbeitet. Wenn Sie also definitiv möchten, dass er verarbeitet wird, stellen Sie sicher, dass er verarbeitet wird.
def method
#Riesige Verarbeitung 1
begin
#Verarbeitung, die wahrscheinlich einen Fehler verursacht
rescue StandardError
puts $!
return
ensure
#Riesige Verarbeitung 2(Wird auch dann verarbeitet, wenn die Rettung zurückgekehrt ist)
end
end
Wenn es mehrere Prozesse gibt, die wahrscheinlich einen Fehler verursachen, ist es einfach, sie am Ende der Funktion zusammenzuschreiben. Das Schreiben beginnt, rettet und endet jedes Mal, wenn es weniger lesbar ist. Alles ist richtig.
def method
#Verarbeitung, die wahrscheinlich verschiedene Fehler verursacht
#Andere Verarbeitung
rescue ZeroDivisionError, ArgumentError
puts $!
rescue StandardError
puts $!
puts $@
end
Übrigens, wenn Sie zuerst StandardError schreiben, wird dieser Typ den größten Teil der Fehlerbehandlung übernehmen. Beginnen wir also mit der Kinderklasse.
Recommended Posts