In dem Abschnitt Wann sollte eine Ausnahme in The Pragmatic Programmer verwendet werden , schreibt das Buch Folgendes anstelle von:
retcode = OK;
if (socket.read(name) != OK) {
retcode = BAD_READ;
}
else {
processName(name);
if (socket.read(address) != OK) {
retcode = BAD_READ;
}
else {
processAddress(address);
if (socket.read(telNo) != OK) {
retcode = BAD_READ;
}
else {
// etc, etc...
}
}
}
return retcode;
, Sie bevorzugen:
retcode = OK;
try {
socket.read(name);
process(name);
socket.read(address);
processAddress(address);
socket.read(telNo);
// etc, etc...
}
catch (IOException e) {
retcode = BAD_READ;
Logger.log( "Error reading individual: " + e.getMessage());
}
return retcode;
einfach weil es ordentlicher aussieht. Ich bin alles für saubereren Code, aber ist das unnötige Auffinden von Ausnahmen nicht ein Leistungsengpass?
Ich kann verstehen, dass wir die winzige Optimierung für saubereren Code aufgeben sollten (mindestens 99% der Fälle), aber soweit ich weiß, gehören Ausnahmen zur Codeklasse, die eine merkliche Verzögerung in der Laufzeit haben. Daher habe ich mich gefragt, was die Rechtfertigung dafür ist, dass der zweite Code dem ersten Code vorgezogen wird.
Oder eher, welchen Code würden Sie bevorzugen?