Sie können eine Unterklasse einer Ausnahme erstellen, um es beschreibender zu machen, aber wie sollten Sie die Standard "Nachricht" einstellen?Ruby Exception Fehler Klassen
class MyError < StandardError
# default message = "You've triggered a MyError"
end
begin
raise MyError, "A custom message"
rescue Exception => e
p e.message
end
begin
raise MyError
raise Exception => e
p e.message
end
Die erste Ausgabe sollte ‚Eine benutzerdefinierte Nachricht‘
Die zweite Ausgabe sollte ‚Du hast eine MyError ausgelöst‘
Irgendwelche Vorschläge als Best Practice?
Nur 'super' ist genug. Wenn Sie 'super' ohne eine Argumentliste aufrufen, werden alle Argumente einfach übergeben. Wenn Sie also * no * Argumente übergeben wollen, müssen Sie explizit 'super()' aufrufen. –
@ JörgWMittag Warum erben alle benutzerdefinierten Fehlerklassen von 'StandardError'? Irgendein Grund dahinter? –
@ArupRakshit Weil es sicher ist. Wann immer vor Fehlern gerettet wird, sollte es ein 'StandardError' (oder niedriger) sein, da höhere Fehler wie' Exception' sogar ausgelöst werden können, wenn CTL-C usw. getroffen wird. Weitere Informationen finden Sie unter http://rails-bestpractices.com/posts/2012/11/01/don-t-Rettung-Ausnahme-Rettung-Standarderror – Sean