섹션에서 사용 예외에 의 실용주의 프로그래머 , 책 쓰기 대신의 :
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;
, 그들은 선호한다:
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;
더 깔끔해 보이기 때문입니다. 난 모든 그러나 성능 병목 예외 잡는 필요없는, 깔끔한 코드를?
나는 우리가 더 깔끔한 코드 (최소한 99 %)에 대한 최소한의 최적화를 포기해야한다는 것을 이해할 수 있지만, 예외를 잡는 것은 런타임에 눈에 띄게 지연되는 코드 클래스에 속합니다. 따라서 두 번째 코드가 첫 번째 코드보다 선호된다는 정당성이 무엇인지 궁금합니다.
아니면 어느 코드를 선호합니까?