• 문법에 맞지 않게 작성 코드 실행시 발생
• 컴파일할 때 발견한다.
• 잘못 동작하거나 결과에 악영향을 미칠 수 있는 실행 중 발생한 오류
• 정수를 0으로 나누는 경우 (Divide by Zero)
• 배열보다 큰 인덱스로 배열의 원소에 접근하는 경우(ArrayIndexOutOfBoundsException)
• 존재하지 않는 파일을 읽으려고 하는 경우
• 정수 타입의 입력을 기다리는 코드 실행 중, 문자가 입력되는 경우
• 자바에서는 예외 처리가 가능하다.
• 예외가 발생할 때 예외에 대응하는 자바 응용 프로그램의 코드
• try-catcvh-finally 문을 사용한다.
try{
예외가 발생할 가능성이 있는 실행문 (try 문)
}
catch(처리할 예외 타입 선언) {
예외 처리문 (catch 문)
}
finally {
예외 발생 여부와 상관없이 무조건 실행되는 문장 (finally문)
}
// finally문은 생략할 수 있다.
• ArithmeticException : 정수를 0으로 나눌 때 발생
• NullPointerException : null인 레퍼런스를 참조할 때 발생
• ClassCastException : 변환할 수 없는 타입으로 객체를 변환할 때 발생
• OutOfMemoryError : 메모리가 부족할 때 발생
• ArrayIndexOutOfBoundsException : 배열의 범위를 벗어날 때 발생
• IllegalArgumentException : 잘못된 인자 전달할 때
• IOException : 입출력 동작 실패 또는 인터럽트가 발생할 때
• NumberFormatException : 문자열이 나타내는 숫자와 일치하지 않는 타입의 숫자로 변환시 발생
• InputMismatchException : Scanner 클래스의 nextInt( ) 메소드 사용 시 int형 정수가 아닌 문자열이 입력 될 때 발생