티스토리 뷰
프로그램의 오류 두가지
1. 컴파일 에러 (컴파일 중 발생하는 에러)
2. 런타임 에러 (어플리케이션 실행 중 발생하는 에러)
자바
1. 에러 - JVM 실행에 문제 -> 개발자가 해결할 수 없음
2. 예외 - 사용자의 잘못된 조작 or 개발자의 잘못된 코딩으로 발생
둘의 공통점 : 둘다 프로그램이 예기치 못하게 종료된다
예외는 예외처리를 통해 프로그램의 종료를 막고 정상 실행할 수 있다
예외처리 2가지 방법
1. try/catch
-
try 안에서 에러가 발생하면 catch 메소드의 매개변수에 에러를 담고있는 exception 객체를 JVM이 넘겨주고 메소드를 실행시킨다
-
catch 구문의 메소드에 예외처리 로직을 넣어 예외를 처리할 수 있다
-
예외 발생 여부와 관계없이 무조건 실행문이 있다면 finally 블록을 추가하여 실행한다
try {
예외가 발생할 수 있는 실행문;
} catch(예외클래스 변수) {
핸들러; //예외를 처리하는 실행문
}
Throwable 클래스의 주요 메소드
- public String getMessage() -Throwable 객체의 자세한 메세지 반환
- public String toString() - Throwable 객체의 간단한 메세지 반환
- public void printStackTrace() - Throwable 객체와 추적 정보를 콘솔 뷰에 출력
2. throws
- throws 키워드를 사용해 예외를 상위 코드 블록으로 전달한다
- 예외를 1개 이상 선언할 수 있다
- 부모 클래스의 메소드에 예외를 떠넘기는 throws 절이 없다면 자식 클래스의 메소드를 오버라이딩 할 떄 어떤 예외도 떠넘길 수 없다
public void method() throws IOException {
// 파일 쓰기와 관련된 실행문 ..
}
'Java' 카테고리의 다른 글
[Java] - Wrapper 클래스와 Boxing/UnBoxing (0) | 2020.11.27 |
---|---|
[Java] - Comparable 과 Comparator (0) | 2020.11.24 |
[Java] - Overriding vs Overloading (0) | 2020.11.15 |
[Java] - JVM의 구성요소와 메모리 구조 (0) | 2020.11.15 |
[Java 8] - 함수형 인터페이스와 메소드 참조 (0) | 2020.11.14 |