Exception(예외)란 프로그래밍 에러 중 런타임에러에 해당되며 프로그램이 실행하는 도중에 에러가 발생해서 잘못된 결과를 얻거나, 혹은 외부적인 요인으로 프로그램이 비정상적으로 작동할 때 사용한다.
이 런타임 에러는 설계 미숙으로 인한 논리적 오류로 발생하는 경우가 대부분이라 개발자가 역추적 통한 원인을 파악해야한다.
많이 알려진 대응코드로 자바의 예외 처리 문법인 (try - catch) 가 있다.
try{
//1. 에러가 발생할 수 있는 코드
throw new Exception(); //강제 에러 출력
}catch (Exception e){
//2. 에러시 수행
e.printStackTrace(); //오류 출력(방법은 다양하다.)
throw e; //최상위 클래스가 아니라면 무조건 사용
}finally{
//예외 발생 여부와 상관없이 무조건 수행
}
NumberFormatException
: 문자열이 나타내는 숫자와 일치하지 않는 타입의 숫자로 변환시 발생
ArithmeticException
: 정수를 0으로 나눌경우 발생
ArrayIndexOutOfBoundsExcetion
: 배열의 범위를 벗어난 index를 접근할 시 발생
ClassCastExcetion
: 변환할 수 없는 타입으로 객체를 반환 시 발생
NullPointException
: 존재하지 않는 레퍼런스를 참조할때 발생
IllegalArgumentException
: 잘못된 인자를 전달 할 때 발생
IOException
: 입출력 동작 실패 또는 인터럽트 시 발생
OutOfMemoryException
: 메모리가 부족한 경우 발생
모든 예외클래스는 Exception 클래스에 속한다.그러므로 catch블럭 괄호에 Exception e 를 선언해 놓으면 어떤 종류의 예외가 발생하더라도 이 catch블럭에 의해서 처리가 된다.
Exception의 유형을 알려주지 않으며, 간단하게 왜 에러가 발생하였는지 내용만 알려줌.
Exception의 유형을 알려주고, 왜 에러가 발생하였는지 내용도 알려줌.
Exception의 유형을 알려주고, 왜 에러가 발생하였는지 내용도 알려줌.
추가적으로 어느 라인에서 에러가 났는지 정보도 알려준다.