Java의 Checked Exception은 언제써야 하는가?

  Java 의 Exception 처리는 C++에서 도입되었지만 checked exception은 Java만의 독특한 특징입니다. 아시다시비, 컴파일러가 exception을 꼭 처리해라고 강요하는 것이죠.  이것은  java 이후에 설계된 언어인 C#이나 루비에도 채택되지 않았습니다. 즉 Java 이외의 다른 언어들의 Exception 처리 방식은 Java의 unchecked exception과 동일한 방식입니다.

  Java의 초기에 checked Exception의 사용을 권장하던 것에 대해서 지금은 많은 반론이 제기되고 있습니다. 극단적으로 Java언어의 Checked Exception 도입 자체가 실패라고 주장하는 사람도 많습니다. Thinking in Java의 저자인 Bruce Eckel도 그 중 한 사람입니다.  Spring framework의 아버지 Rod Johnson도 Checked Exception이 쓰여야 할 때도 있지만 그 것이 과도하게 선호되어 온 것은 지적하고 있습니다.

  어쨓든 Exception 부분은 Java로 API 설계와 코딩를 할 때 가장 어려운 부분이라고 느껴집니다. Java 아키텍트와 개발팀의 실력을 측정하는 좋은 방법은 그들이 만든 Exception 처리 코드를 보라는 말까지 있으니까요.

 

 Exception 처리 방식 참고자료

 

 

 

 

 

 

 

 

 

Checked Exception에 대한 부정적 견해를 정리한 글

 

 

 


Checked Exception에 대한 논의가 진행된 페이지

 

이클립스 Exception처리 코드 템플릿 관련 자료

 

아직 못 읽어본 자료들...

Exception-Handling Antipatterns
http://today.java.net/pub/a/today/2006/04/06/exception-handling-antipatterns.html

 

Error handling, A Pattern Language
http://www.objectarchitects.de/arcus/cookbook/exhandling/index.htm

 

http://www-106.ibm.com/developerworks/java/library/j-ejbexcept.html

http://www.javaworld.com/jw-07-1998/jw-07-techniques.html

http://www.javaworld.com/jw-07-1998/jw-07-exceptions.html
http://www.javaworld.com/javaworld/jw-08-2001/jw-0803-exceptions.html

http://www.javaworld.com/javaworld/jw-09-2001/jw-0914-exceptions.html
http://www.javaworld.com/javaworld/jw-10-2003/jw-1003-generics.html

 

http://www.codemonkeyism.com/archives/2008/12/16/7-good-rules-to-log-exceptions/