Dans la section Quand utiliser l'exception dans The Pragmatic Programmer , le livre écrit qu'au lieu 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;
, ils préfèrent:
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;
tout simplement parce qu'il a l'air plus soigné. Je suis tout pour le code plus propre, est cependant pas inutile saisie d' une exception d' un goulot d'étranglement?
Je peux comprendre que nous devrions abandonner l'optimisation minuscule pour le code plus propre (au moins 99% du temps), mais d'après ce que je sais, les exceptions de capture appartiennent à la classe de code qui a un retard notable dans l'exécution. Par conséquent, je me demandais quelle est la justification que le deuxième morceau de code est préféré au premier code?
Ou plutôt, quel code préférez-vous?