Ich bin mir ziemlich sicher, dass ich die Antwort bereits kenne, aber ich bin immer noch neugierig, was die Meinung über die Behandlung eines Fehlers in einem Try, Catch, Finally Block ist - aber wenn du dich wiederholst.Throw Ausnahme VS Return Fehler innerhalb eines Try, Catch, schließlich
BTW - ich spreche nicht über User Input - aber mit, dass für ein Beispiel, weil es klar und kurz ist
dieses Stück Code Betrachten ...
try {
if (success) {
return someSuccessMessage;
}
else {
logError("User input not correct format");
return someErrorMessage; // repeats itself
}
}
catch (Exception ex) {
logError(ex.Message);
return someErrorMessage; // repeats itself
}
Say Wir haben eine Funktion, die, wenn sie fehlschlägt, eine Fehlermeldung zurücksenden soll, weil die Ausnahme irrelevant ist - unsere Funktion war nicht erfolgreich und der Benutzer benötigt keine zusätzlichen Details.
Ich habe immer geglaubt, dass, wenn Sie mit dem Fehler umgehen können, die Ausnahme vermeiden - da es nicht mehr außergewöhnlich ist, aber ich fragte mich die Meinung über die Vermeidung von sich selbst zu wiederholen ... Sie könnten das tun folgende zu vermeiden, sich zu wiederholen ...
try {
if (success) {
return someSuccessMessage;
}
else {
throw new Exception("User input not correct format");
}
}
catch (Exception ex) {
logError(ex.Message);
return someErrorMessage;
}
Dies ist nicht das beste Beispiel ist, aber ich war der Kürze halber werde den Punkt des Wiederholens Code zu machen.
Es ist bekannt, dass Ausnahmen eine Leistungseinbuße verursachen, aber was sind die Gedanken über eine Situation wie diese?
Dies ist ein klassisches Beispiel für Ausnahmen Missbrauch für Kontrollfluss, hier diskutiert [Warum Ausnahmen nicht als regelmäßigen Kontrollfluss verwenden?] (Http://StackOverflow.com/q/729379/2444725) – Lightman