Whiteship's Note

Checked Exception VS Unchecked Exception

Java : 2006. 12. 1. 22:24


ConcurrentModificationException 을 처음 본 것은 영회 형이 Agile Java 블러그에 올려두신 글을 통해서 입니다. 그 글의 요지를 파악하지 못하고 계속 섯부른 질문을 계속 하는 저의 모습이 부끄럽게 느껴집니다.

Checked Exception과 Unchecked Exception의 차이

Check Exception을 발생하는 메소드를 사용 할 경우에는 반드시 메소드 헤드 부분에 throws XXXException 이라고 명시를 해서 이 메소드를 호출하는 다른 메소드에게 Exception 처리에 대한 책임을 넘겨주거나 try-catch로 잡아야 합니다.

Unchecked Exception을 발생시킬 수 있는 메소드를 사용할 경우에는 경우에는 아무것도 안해도 됩니다. 따라서 코드처리가 훨~씬 간편합니다. 하지만 Unchecked Exception이 발동하면 프로그램이 바로 에러를 내면서 멈춰버립니다. 또 하지만 Unchecked Exception도 try-catch로 잡거나 throws 를 사용해서 다른 메소드에게 넘겨버릴 수도 있습니다.

둘 중에 어떤 것이 좋을까요? 저도 잘 모르겠습니다.

일단 IO관련된 Java API를 사용하게 되면 try-catch를 정신없이 써야만 하는데 막상 catch 블럭 안에서 하는 일은 Exceptoin이 발생했다고 찍어 주는 정도의 일을 합니다. 어떤 txt파일로 부터 데이타를 읽어오는 경우에 발생 시킬 수 있는 FileNotFoundException의 경우에 Checked Exception입니다. 따라서 Try-Catch 해야겠죠. 그래서 막상 try-catch로 묶어서 catch 블럭에서 무엇을 해야되나 고민을 해봐도.. 마땅히 떠오르는 일은 스택 트레이스 찍어 주기 뿐입니다. 이렇게 해두면 만약에 정말 파일을 못찾아서 이 블럭으로 온 경우에 스택 트레이스를 찍은 담에 할일을 계속 합니다. 이게 과연 제대로 프로그램이 돌아가는 걸까요. 그 파일이 이 프로그램에서 완전 핵심이라면 어떻하죠? 프로그램이 아예 멈춰도 당연한 상황이라면 Catch 했다고 안심해도 되는 걸까요?

좀 더 조사와 고민을 해봐야겠습니다.

'Java' 카테고리의 다른 글

Reflection  (0) 2006.12.19
... 가변인수(varargs)  (2) 2006.12.11
for each 구문 사용법  (0) 2006.12.11
JUnit Reloaded  (0) 2006.12.07
I/O Stream 구성  (0) 2006.12.07
Checked Exception VS Unchecked Exception  (0) 2006.12.01
냄새 나는 Switch 코드와 다형성  (3) 2006.11.30
Map 인터페이스 살펴보기  (0) 2006.11.29
Abstract Test  (6) 2006.11.28
상속을 이용한 다형성 vs 인터페이스를 이용한 다형성  (0) 2006.11.24
Throwable 계층구조  (0) 2006.11.21
top

Write a comment.




: 1 : ··· : 104 : 105 : 106 : 107 : 108 : 109 : 110 : 111 : 112 : ··· : 140 :