Exception (예외) 처리
- 프로그램 실행 시 발생할 수 있는 예기치 못한 예외의 발생에 대비한 코드를 작성하는 것
- 자바에서 코드를 예외 처리 한다고해서 프로그램의 예외 상황 자체를 막을 수는 없음
- 목적
- 예외 발생으로 인해 실행 중인 프로그램의 갑작스런 비정상적인 동작 방지
- 에러를 잡고 복구를 시도하거나 회피식으로 처리하여 프로그램이 정상 실행상태를 유지할 수 있도록 하는 것
try - catch 문
- 예외처리를 위한 try, catch문의 기본 구조
- try 블록에는 예외발생 가능 코드가 위치하고 오류 발생 시, 오류 종류(예외 클래스)에 맞는 catch문으로 가서 catch 블록 안에 있는 코드 실행
- 만약 오류가 발생하지 않으면 catch 문은 실행하지 않음
- catch 문에 예외클래스 타입과 변수 e가 선언되어 있는데, 예외가 발생하면 그 예외에 맞는 예외클래스가 catch 문에 아규먼트로 선언되어 있으면 실행되어 옳지 못한 동작에 대하여 대비 가능
- 클래스의 상속 관계 (다형성)을 이용해 예외 클래스의 상위 클래스인 Exception 클래스 타입을 catch문 아규먼트에 선언하면, 코드 몇줄만으로 자바의 나머지 모든 예외 클래스를 catch 문으로 받을 수 있음
(다만, 세세하게 어떤 예외인지는 부모 클래스인 Exception 클래스만으로는 알 수 없게 되는 단점이 존재)
다중(멀티) Catch
- JDK 1.7 부터 여러 catch 블럭을 하나의 catch 블럭으로 합칠 수 있다.
- 이에 따라, 연결할 수 있는 예외 클래스의 개수에도 제한이 없음
- 다만, 멀티 catch는 결국 위의 부모 예외 클래스 exception과 같이 여거 개의 예외를 통짜로 처리하는 것이기 때문에 세세하게 제어하고 싶으면 if문과 instanceOf 연산자로 분기처리를 해주어야 함
728x90
'ssung_항해일지 > CS 지식 및 기술면접' 카테고리의 다른 글
Stack & Queue (0) | 2023.07.12 |
---|---|
RDB & NoSQL (0) | 2023.05.18 |
오버로딩과 오버라이딩 (0) | 2023.05.18 |
절차지향, 객체지향, 함수형 프로그래밍 (0) | 2023.05.17 |
Stack & Queue / Array & LinkedList (0) | 2023.05.16 |