2018-4-13 자바에서 예외처리를 사용할 때

자바의 예외처리

예외처리의 2가지

  1. compile time exception :
  2. 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