1. Exception 란
❓ Exception
- 사용자의 잘못된 조작이나 개발자의 코딩 실수로 인해 발생하는 프로그램 오류
- 예외는 예외 처리를 통해 프로그램을 종료하지 않고
정상 실행 상태가 유지
되도록 할 수 있음
💡 java.lang.Exception
- 모든 예외 클래스는 java.lang.Exception 클래스를 상속
- Exception 클래스 자체는 checked exception 이다.
- Exception 클래스는 Throwable 클래스의 자식 클래스이다.
- Exception 클래스의 자식 클래스 중 RuntimeException 클래스는 Unchecked 이다.
- 그 외 checked exception이 있다.
💡 exception class 구조
2. Error 란
❓ Error
- system에 비정상적인 상황이 발생했을 경우 발생
- outOfMemory, StackkOverFlow
- application code 단에서 처리 할 수 없음
3. Checked Exception 란
❓ Checked Exception
컴파일
할 때 예외에 대한 처리를 강제
- 주로 외부의 영향으로 발생
- 예외 처리 강제 : 예외가 발생할 경우
try-catch
, throws
로 강제
- 예외로부터 합리적으로
회복할 수 있는 경우
사용
- 예외 발생 시 내부의 예외가 외부로 알려지면서
캡슐화
가 깨질 수 있음.
💡 종류
- Exceeption의 상속 받는 하위 클래스 모두
- ex ) IOException, SQLException, FileNotFoundException..
✒️
File file;
try {
file = FileFindService.find(fileName);
} catch (FileNotFoundException e){
}
4. Unchecked Exception 란
❓ Unchecked Exception
컴파일
할 때 예외에 대한 처리를 강제하지 않음
- 주로 프로그래머의 실수에 의해 발생
- 예외로부터 합리적으로
회복할 수 없는
경우
💡 종류
- RuntimeExceeption의 상속 받는 하위 클래스 모두
- ex ) NullPointerException, IllegalArgumentException, IndexOutOfBoundException, SystemException..
✒️ non-rollback 처리
try {
System.out.println( 31 / 0 );
} catch (RuntimeException e){
}
📌 여담
📚 참고