7장: 예외 처리
오류 코드보다 예외를 사용하라 (130p)
130p)오류 코드/플래그 방식
public class DeviceController {
// ...
public void sendShutDown() {
DeviceHandle handle = getHandle(DEV1);
if (handle != DeviceHandle.INVALID) {
retrieveDeviceRecord(handle);
if (record.getStatus() != DEVICE_SUPENDED) {
pauseDevice(handle);
clearDeviceWorkQueue(handle);
} else {
logger.log("Device suspended. Unable to shut down");
}
} else {
logger.log("Invalid handle for: " + DEV1.toString());
}
}
}예외를 던지는 코드
Try-Catch-Finally 문부터 작성하라 (132p)
132p)미확인(Unchecked) 예외를 사용하라 (133-134p)
133-134p)예외에 의미를 제공하라 (135p)
135p)호출자를 고려해 예외 클래스를 정의하라 (135p)
135p)외부 라이브러리의 예외를 모두 잡으려는 코드
예외 유형을 하나만 반환하는 코드
감싸기 기법의 장점
정상 흐름을 정의하라 (137p)
137p)비용 청구 어플리케이션
null을 반환하지 마라 (138p)
138p)null을 전달하지 마라 (140p)
140p)Last updated