[자바(JAVA)] 에러와 예외

에러
프로그램을 처리할 수 없기 때문에 에러 발생 시 프로그램이 중단됨

예외
프로그램 실행 중에 발생할 수 있는 가벼운 사건
프로그래머가 충분히 예측할 수 있는 사건
프로그램적으로 얼마든지 처리할 수 있는 오류

예외가 발생하는 경우
정수를 0으로 나누는 경우
배열의 인덱스가 음수 값을 가지는 경우 [ 파이썬이랑 다르다 파이썬은 가능]
배열의 인덱스가 배열의 길이를 넘어서는 경우 ArrayIndex
부적절한 형변환이 발생하는 경우 Number
입출력시 인터럽트가 발생하는 경우
입출력을 위해 필요한 파일이 존재하지 않는 경우

자바의 예외처리 방법
예외도 객체로 처리한다. 예외를 처리하기 위한 객체를 생성할 클래스가 필요하다.

프로그램 실행중 예외가 발생하면 JVM에서 예외 객체를 프로그램에 throw 하고 프로그램은 이를 catch 한 이후에 진행하면 된다.

예외 처리 로직을 구현하지 않은 경우 기본 예외 처리 핸들러가 발생된 에러 메시지를 화면에 출력하고 실행을 중지시킨다.

자바의 예외 클래스

자바의 모든 예외는 java.lang.Exception 클래스의 자식 클래스로 만들어진다.

java.lang.Throwable = 예외 최상위 클래스

java.lang.Error 처리할 수 없는 치명적인 에러 처리
java.lang.Exception 정상적인 프로그램 동작시 만날 수 있는 예외 처리

Runtime Exception

또 RuntimeException 은 실행시 발생하는 예외이기 때문에 예외 클래스를 포함하지 않아도 컴파일이 된다. RuntimeException의 자식 예외도 동일

java.lang.IllegalArgumentException
java.lang.ArithmeticException
java.lang.ArrayIndexOutOfBoundsException