2018-4-13 자바에서 예외처리를 사용할 때
자바의 예외처리
예외처리의 2가지
- compile time exception :
- runtime exception :
compile time vs runtime
- compiletime : build를 할때, java source code를 class화를 할때
- complietime exception은 throw를 하면 그것을 반드시 외부로 전달?을 해야한다.
import org.junit.Test;
public class PositionTest {
@Test
public void create() throws InValidException {
new Position("a");
}
// 예외처리를 못하면 다시 throw를 해라
@Test
public void create_ex() {
try {
new Position("a");
} catch (InValidException | IllegalArgumentException e) {
System.out.println("In valid");
}
}
}
// 부모클래스로 한번에 catch를 할 수 있다.
언제 complieEx와 runtimeEx를 사용할까?
- compiletime Exception은 컴파일을 할때, 잡아내는 장점이 있지만 일일이 try~catch를 이용해야하므로 남용을 하면 코드가 복잡해진다.
-
catch를 할때, 신중하게 해야한다. 안그러면 어떤 에러가 발생을 했는지 아예 모른다.
- 지금의 흐름은 가능한 compiletime Exception이 아닌 runtimeException을 사용을 하는것이 기본 가이드라인이다.
- compileTimeExpcetion은 businessLogic처럼 명시적으로 에러가 발생을 하면 그때 사용을 하고 그런경우가 아니면 runtimeException을 쓴다.
-
메소드 생성자 뒤에 throws를 사용을 하면 어떤 에러가 발생을 할지 알 수 있다.
-
문법이 어렵다고 생각을 하면 그냥 runtimeException을 사용을 하는것이 났다.
- console에 출력되는 class.<init>에서 init은 생성자를 의미한다.
-
예외처리를 한곳에서 처리를 하는것은 안좋다.
Written on April 13, 2018