컴파일 에러(compile-time error) : 컴파일 할 때 발생하는 에러
런타임 에러(runtime error) : 실행 할 때 발생하는 에러
논리적 에러(logical error) : 작성 의도와 다르게 동작
자바 컴파일러 : 구문체크, 번역, 소스코드 최적화
에러(error) : 프로그램 코드에 의해서 수습될 수 없는 심각한 오류
예외(exception) : 프로그램 코드에 의해서 수습될 수 있는 다소 미약한 오류
정의 : 프로그램 실행 시 발생할 수 있는 예외의 발생에 대비한 코드를 작성하는 것
목적 : 프로그램의 비정상 종료를 막고, 정상적인 실행상태를 유지하는 것
Exception : 사용자의 실수와 같은 외적인 요인에 의해 발생하는 예외
RuntimeException : 개발자의 실수로 발생하는 예외
try블럭에 예외가 발생하면 빠져나와서 catch블럭으로 바로 이동한다.
printStackTrace() : 예외발생 당시의 호출스택(Call Stack)에 있었던 메서드의 정보와 예외 메시지를 화면에 출력한다.
getMessage() : 발생한 예외클래스의 인스턴스에 저장된 메시지를 얻을 수 있다.
CheckedException : 컴파일러가 예외 처리 여부를 체크(예외 처리 필수)
UnCheckedException : 컴파일러가 예외 처리 여부를 체크 안함(예외 처리 선택)
예외를 처리하는 방법 : try-catch문(직접 처리), 예외 선언(예외 떠넘기기)
예외 선언 : 메서드가 호출시 발생가능한 예외를 호출하는 쪽에 알리는 것
호출한 메서드에 try-catch문이 있어야 예외가 처리되고 이렇게 떠넘기기만 하면 처리되지 않은 상태가 된다.(프로그램 비정상 종료)
예외의 발생여부에 관계없이 항상 수행되어야하는 문장들을 넣는다.
try-catch문의 맨 마지막에 위치해야한다.