Di bagian When to Use Exception dalam The Pragmatic Programmer , buku ini menulis bahwa alih-alih:
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;
, mereka lebih suka:
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;
hanya karena tampilannya lebih rapi. Aku semua untuk kode lebih rapi, namun tidak perlu menangkap Pengecualian hambatan kinerja?
Saya bisa mengerti bahwa kita harus menyerah optimisasi sangat kecil untuk kode yang lebih rapi (setidaknya 99% dari waktu), namun dari apa yang saya tahu, menangkap pengecualian milik kelas kode yang memiliki keterlambatan nyata dalam runtime. Oleh karena itu saya bertanya-tanya apa pembenaran bahwa potongan kode kedua lebih disukai daripada kode pertama?
Atau lebih tepatnya, kode mana yang Anda inginkan?