예외 : 연산 오류, 숫자 포맷 오류 등과 같이 상황에 따라 개발자가 해결할 수 있는 오류
에러 : 자바 가상 머신 자체에서 발생하는 오류로, 개발자가 해결할 수 없는 오류
일반 예외(Checked Exception) : 컴파일 전에 예외 발생 문법을 검사하며, 예외 처리를 하지 않으면 문법 오류 발생
실행 예외(Unchecked Exception) : 실행할 때 발생하는 예외로 예외 처리를 따로 하지 않더라도 문법적 오류가 발생하진 않지만 프로그램 실행시 프로그램이 강제 종류도히는 이유중 대부분을 차지한다.
InterruptedException
:
ClassNotFoundException
: 클래스를 메모리에 동적으로 로딩하는 과정에서 해당 클래스가 존재하지 않으면 발생
IOException
: 콘솔이나 파일에 데이터를 쓰거나(write()) 읽을(read()) 때 발생
FileNotFoundException
: 파일을 읽을 때 해당 경로에 파일이 없으면 발생
CloneNotSupportedException
: Cloneable 인터페이스를 상속하지 않은 클래스의 객체를 복사하기 위해 clone() 메서드를 호출하면 발생
ArithmeticException
: 연산 자체가 불가능할 때 발생하는 실행 예외 ex)분모에 0이 들어가는 경우
ClassCastException
: 다운캐스팅이 불가능한 상황에서 다운캐스팅을 시도하는 경우
ArrayIndexOutOfBoundsException
: 배열의 인덱스를 잘못 사용했을 때 발생
NumberFormatException
: 문자열을 숫자 또는 실수로 변환할 때 문자열이 변환하고자 하는 숫자 형식이 아니면 발생
NullPointerException
: 참조 변수가 실제 객체를 가리키고 있지 않은 상황에서 필드나 메서드를 호출할 때 발생
try{
//일반 예외, 실행 예외 발생 가능 코드
}catch{
//예외 발생했을 때 처리
}finally{
//예외 발생 여부에 상관없이 무조건 실행 (생략가능)
}