En la sección Cuándo usar la excepción en El programador pragmático , el libro escribe que en lugar de:
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;
, ellos prefieren:
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;
simplemente porque se ve más ordenado. Estoy todo para el código más limpio, sin embargo, no es necesaria la captura de excepciones de un cuello de botella?
Puedo entender que deberíamos renunciar a la optimización minúscula para un código más ordenado (al menos el 99% de las veces), sin embargo, por lo que sé, las excepciones de captura pertenecen a la clase de código que tiene un retraso notable en el tiempo de ejecución. Por lo tanto, me preguntaba cuál es la justificación de que se prefiere la segunda parte del código sobre el primer código.
O más bien, ¿qué código preferirías?