github.com/whiteship/live-study/issues/9
목표자바의 예외 처리에 대해 학습하세요. 학습할 것 (필수)
|
1. 자바에서 예외 처리 방법 (try, catch, throw, throws, finally)
- catch문이 여러개라도 하나만 실행됨. 예외가 발생하면 즉시 실행을 멈추고 해당하는 첫번째 catch 블록으로 이동.
- 따라서 catch 순서는 하위 예외 클래스가 먼저 와야함
throws : 예외 떠넘기기
- 메소드를 호출한 곳으로 예외를 떠넘기는 방법
- 최종적인 예외 처리는 JVM이 한다. 예외가 JVM까지 떠넘겨지면 콘솔에 예외의 내용을 출력하는 것으로 예외 처리가 진행된다.
리턴타입 메소드명(매개변수, ...) throws 예외클래스1, 예외클래스2, ... {
}
▲ JVM은 프로그램을 실행하는 도중에 예외가 발생하면 해당 예외 클래스로 객체를 생성하고, 예외 처리 코드에서 예외 객체를 이용할 수 있게 해줌.
2. 자바가 제공하는 예외 계층 구조
Throwable is the highest level of Error Handling classes.
3. Exception과 Error의 차이는?
에러 : 컴퓨터 하드웨어의 오동작 또는 고장으로 인해 응용프로그램 실행 오류가 발생하는 것. JVM 실행 자체에 문제. 실행 불능
예외 : 사용자의 잘못된 조작 또는 개발자의 잘못된 코딩으로 인해 발생하는 프로그램 오류. 예외 처리(Exception Handling)을 통해 프로그램 종료하지 않고 정상 실행 상태가 유지되도록 할 수 있다.
4. RuntimeException과 RE가 아닌 것의 차이는?
Checked Exception(일반예외, 컴파일러 체크 예외)과 Unchecked Exception(Runtime Exception)의 차이점
- Checked Exception : Runtime Exception과 Runtime Exception을 상속받는 예외처리 클래스를 제외한 클래스
- 컴파일 타임에 일어나거나 I/O시 일어나는 예외들
- 컴파일 하는 과정에서 예외 처리 코드가 필요한지 검사. 예외 처리 코드가 없으면 컴파일 오류 발생
- UnChecked Exception : Runtime Exception과 Runtime Exception을 상속받는 예외처리 클래스
- 런타임시 발생하는 예외는 UnChecked Exception이다.
5. 커스텀한 예외 만드는 방법
Programmer defined classes (프로그래머가 정의하는 예외처리 클래스)
- class CheckedException1 extends Exception
- class CheckedException2 extends CheckedException1
- class UnCheckedException extends RuntimeException
- class UnCheckedException2 extends UnCheckedException
이전에 정리한 자바 예외 처리 글을 참고하였다.
출처: 이것이 자바다 (신용권 저)
'Programming > Java' 카테고리의 다른 글
[whiteship 온라인 스터디] 11주차 과제: Enum (0) | 2021.02.24 |
---|---|
[whiteship 온라인 스터디] 10주차 과제 - 멀티쓰레드 프로그래밍 (0) | 2021.02.24 |
[whiteship 온라인 스터디] 8주차 과제 - 인터페이스 (0) | 2021.02.13 |
[whiteship 온라인 스터디] 7주차 과제 - 패키지 (0) | 2021.01.02 |
[whiteship 온라인 스터디] 6주차 과제 - 상속 (0) | 2020.12.26 |