이클립스의 기본 try-catch 탬플릿 비추
모하니?/Coding : 2008/04/26 09:59
Catched Exception이 하두 지저분해서 호출한 쪽에서 계속해서 던지거나 try-catch로 감싸는게 싫어서 던지는 쪽에서 그냥 퀵 픽스를 누르고 try-catch 블럭으로 감싸버리는 실수를 했습니다.
이클립스가 기본으로 제공하는 try-catch 블럭은 예외를 먹어버리는 악성코드입니다. 기능 구현에 집중하고 이런 세세한 부분을 신경 안 쓰다가는 디버깅하기 어려운 코드를 만들게 됩니다. 따라서 왠만하면 사용하지 맙시다. 아니면 template을 수정해서 throw new RuntimeExcepion(e)를 추가해줘도 되겠죠.
이미 알고 있는 내용이었는데도 이런 실수를 하다니...ㅠ.ㅠ
위의 코드가 이클립스가 제공해주는 코드인데 저러면 안 됩니다. 에러를 찍고 그냥 프로그램이 계속 돌아갑니다. 이게 뭐가 잘 못 된건데?? 라고 하신다면.. ㄷㄷㄷ.. 중요한 코드가 제대로 동작해야 하는데 그렇치 못한 상태에서 프로그램이 계속 돌면 분명 에러 찾기도 어렵고 문제가 있는지 조차 알 수가 없습니다.
그래서..
이렇게 하면 원래 에러를 가진 채 런타임 에러를 던지게 되고 만약 위험한 코드에서 정말 위험한 일이 발생하면 프로그램은 바로 에러를 뱉고 쓰러집니다. 에러를 바로 발견할 수 있고 위처럼 원래 예외 객체를 같이 넘겨줘야 nested excepton으로 원래 예외도 알 수 있습니다.
이클립스가 기본으로 제공하는 try-catch 블럭은 예외를 먹어버리는 악성코드입니다. 기능 구현에 집중하고 이런 세세한 부분을 신경 안 쓰다가는 디버깅하기 어려운 코드를 만들게 됩니다. 따라서 왠만하면 사용하지 맙시다. 아니면 template을 수정해서 throw new RuntimeExcepion(e)를 추가해줘도 되겠죠.
이미 알고 있는 내용이었는데도 이런 실수를 하다니...ㅠ.ㅠ
try {
// 위험한 코드
} catch(어떤 예외 e) {
e.printStackTrace()
}
// 위험한 코드
} catch(어떤 예외 e) {
e.printStackTrace()
}
위의 코드가 이클립스가 제공해주는 코드인데 저러면 안 됩니다. 에러를 찍고 그냥 프로그램이 계속 돌아갑니다. 이게 뭐가 잘 못 된건데?? 라고 하신다면.. ㄷㄷㄷ.. 중요한 코드가 제대로 동작해야 하는데 그렇치 못한 상태에서 프로그램이 계속 돌면 분명 에러 찾기도 어렵고 문제가 있는지 조차 알 수가 없습니다.
그래서..
try {
// 위험한 코드
} catch(어떤 예외 e) {
throw new RuntimeException(e)
}
// 위험한 코드
} catch(어떤 예외 e) {
throw new RuntimeException(e)
}
이렇게 하면 원래 에러를 가진 채 런타임 에러를 던지게 되고 만약 위험한 코드에서 정말 위험한 일이 발생하면 프로그램은 바로 에러를 뱉고 쓰러집니다. 에러를 바로 발견할 수 있고 위처럼 원래 예외 객체를 같이 넘겨줘야 nested excepton으로 원래 예외도 알 수 있습니다.
'모하니? > Coding' 카테고리의 다른 글
| Spring 2.5 @Controller 사용시 BindingResult 주의 할 것. (0) | 2008/05/14 |
|---|---|
| OSIV 사용시 주의 할 것 (0) | 2008/05/11 |
| DWR이 제대로 자바스크립트 만들었는지 확인하기 (0) | 2008/05/08 |
| EasyMock 사용할 때 주의 할 것 (2) | 2008/04/29 |
| 스프링의 getBean() 타입 캐스팅 없애는 방법 (2) | 2008/04/28 |
| 이클립스의 기본 try-catch 탬플릿 비추 (0) | 2008/04/26 |
| 테스트는 진짜로 잘 만들어야 함 (2) | 2008/04/25 |
| @Configurable 사용시 버그 피해가기 (0) | 2008/04/24 |
| GenericPropertyEditor 만들려면... (0) | 2008/04/22 |
| TDD 연습하기 - RomanNumber (6) | 2008/04/18 |
| Spring 컨트롤러와 request scope bean (4) | 2008/04/16 |






