에러와 예외
어떤 원인에 의해 오동작 하거나 비정상적으로 종료되는 경우 (심각도에 따라 분류)
에러(Error)
- 메모리 부족, stack overflow와 같이 일단 발생하면 복구 불가
- 프로그램의 비정상적 종료를 막을 수 없음 -> 디버깅 필요
예외(Exception)
- 읽을려는 파일이 없거나 네트워크 연결이 안되는 등 수숩될 수 있는 비교적 상태가 약한 것
- 프로그램 코드에 의해 수습될 수 있는 상황
예외처리(Exception Handling)
예외 발생 시 프로그램의 비정상 종료를 막고 정상적인 실행 상태를 유지
Checked Exception
- 예외에 대한 대처 코드를 필수적으로 작성
- 작성하지 않으면 컴파일을 진행할 수 없음
Unchecked Exception
- RuntimeException 클래스의 자식클래스
- 예외에 대한 대처 코드가 없어도 됨 (단, 예외에 대한 책임은 개발자 몫)
예외 처리는 try~catch 구문사용
예외가 발생할 것이라 예상되는 곳을 try 블록으로 감싸고,
예외가 발생했을 때 실행할 코드는 catch 블록에 작성
※catch문에 printStackTrace(); 를 사용하면 에러메세지를 볼수있다.
throws 키워드를 통한 처리 위임
예외 처리를 매서드 내의 예외 발생한 곳에서 처리하지 않고 메서드를 호출한 곳에서 처리할때 throws 키워드 사용
- 예외를 전달받은 메서드는 예외 처리하거나 혹은 자신을 호출한 곳에서 처리하도록 throws 키워드 사용
- 부모 타입으로 형 변환하여 throws 가능
- Uncheched Exception 계열은 throws 하지 않아도 전달됨 (생략 가능)
'JAVA' 카테고리의 다른 글
자바 컬렉션 프레임워크(Collection Framework) (0) | 2022.01.19 |
---|---|
자바 제네릭(Generics) (0) | 2022.01.19 |
인터페이스 (0) | 2022.01.19 |
자바(JAVA) 초급 (0) | 2022.01.17 |
JAVA 배열(Array) (0) | 2022.01.13 |