728x90
  • 에러는 발생 시점에 따라 컴파일에러, 런타임에러, 논리적 에러가 있다.
    • 컴파일 에러 - 컴파일 시에 발생하는 에러
    • 런타임 에러 - 실행 시에 발생하는 에러
    • 논리적 에러 - 실행은 되지만, 의도와는 다르게 동작하는 것
  • 자바에서는 실행 시 발생할 수 있는 프로그램 오류를 '에러'와 '예외' 두 가지로 구분했다.
    • 에러 - 프로그램 코드에 의해서 수습될 수 없는 심각한 오류
    • 예외 - 프로그램 코드에 의해서 수습될 수 있는 다소 미약한 오류
  • 예외처리란 프로그램 실행 시 발생할 수 있는 예기치 못한 예외의 발생에 대비한 코드를 작성하는 것이다.
    예외처리의 목적은 프로그램의 비정상 종료를 막고, 정상적인 실행상태를 유지하는 것이다.
  • 처리되지 못한 예외는 JVM의 예외처리기(UncaughtExceptionHandler)가 받아서 예외 원인을 화면에 띄워준다.
  • 예외 처리를 위해선 try-catch 문을 사용하며 발생한 예외의 종류와 일치하는 단 한 개의 catch 블럭만 수행된다.
  • throw를 사용해서 프로그래머가 고의로 예외를 발생시킬 수 있다.
  • 메서드에 예외를 선언하기 위해선 선언부에 throws를 사용해서 메서드 내에서 발생할 수 있는 예외를 적어주면 된다.
  • finally블록은 예외의 발생여부에 상관없이 실행되어야 할 코드를 포함시킬 목적으로 사용된다.
    try-catch문의 끝에 선택적으로 덧붙여 사용할 수 있다.
  • 하나의 예외가 다른 예외를 발생시킬 수 있는데 이때 예외의 원인이 되는 예외를 '원인 예외'라고 한다.
    예외를 생성 후 initCause() 로 원인 예외를 등록한 후, 생성된 예외를 throw로 던지면 된다.
    이와 같은 처리를 하는 이유는 여러가지 예외를 하나의 큰 분류의 예외로 묶어서 다루기 위함이다.
    또 다른 이유로는 checked예외를 unchecked예외로 바꿀 수 있도록 하기 위함이다.

+ Recent posts