<예외 처리 (Exception Handing)>
- 프로그램 수행 시 치명적 상황이 발생하여 비정상 종료 상황이 발생한 것, 프로그램 에러라고도 함
1) 오류의 종류
(1) 컴파일 에러
- 프로그램의 실행을 막는 소스 상의 문법 에러, 소스 구문을 수정하여 해결
(2) 런타임 에러
- 입력 값이 틀렸거나, 배열의 인덱스 범위를 벗어났거나, 계산식의 오류 등
- 주로 if문 사용으로 에러를 방지
2) 예외 클래스 계층 구조
- 프로그램 수행 -> 예외사항 발생 -> JVM이 해당 예외 상황에 맞는 Exception 클래스를 찾아 객체로 만듦
-> 객체로 만들어 졌을 때 빨간 글씨가 나오면서 어디서 예외가 발생했는지 안내 -> 프로그램 종료
- 자바 실생 시 발생하는 예외는 모두 클래스로 작성되어 있다
3) 예외 처리 방법
(1) Exception이 발생한 곳에서 직접 처리
- try~catch문을 이용하여 예외 처리
(2) try
- Exception 발생할 가능성이 있는 코드를 안에 기술
- 수행 중 예외 발생 시 예외 객체가 던져짐(throw)
(3) catch
- try 구문에서 Exception 발생 시 해당하는 Exception 에 대한 처리 기술
- 여러 개의 Exception 처리가 가능하나 Exception간의 상속 관계 고려해야 함
- try에서 던져진 예외를 잡아서 처리
- 예외를 잡아서 처리했기 떄문에 프로그램이 종료하지 않음
(4) Exception 처리를 호출한 메소드에게 위임
- 메소드 선언 시 throw Exception명을 추가하여 호출한 상위 메소드에게 처리 위임
- 계속 위임하면 main() 메소드까지 위임하게 되고
- main() 메소드에서도 처리되지 않는 경우 프로그램이 비정상 종료됨
<Exception과 오버라이딩>
- 오버라이딩 시 throws하는 Exception의 개수와 상관없이 처리 범위가 같거나 후손 이어야 함
'JAVA' 카테고리의 다른 글
[JAVA] List, 향상된 for문, split (1) | 2023.03.16 |
---|---|
[JAVA] 컬렉션, 자료 구조, 배열의 문제점 (0) | 2023.03.15 |
[JAVA] 인터페이스, 상속 (0) | 2023.03.13 |
[JAVA] 다형성 업캐스팅, 다운캐스팅, 추상클래스, 추상 메소드 (0) | 2023.03.09 |
[JAVA] 상속, 오버라이딩 (0) | 2023.03.09 |