충분히 쌓여가는
프로그램 오류, 예외 클래스의 계층구조 본문
프로그램 오류
컴파일 에러(compile-time error): 컴파일할 때 발생하는 에러
런타임 에러(runtime error): 실행 할 때 발생하는 에러
논리적 에러(logical error): 작성 의도와 다르게 동작
컴파일 에러
자바 컴파일러 하는 일
1. 구문 체크
2. 번역
3. 소스코드 최적화
public class ExceptionTest {
public static void main(String[] args) {
system.out.println(args[0]); // 에러, System
}
}
런타임 에러
실행 중 에러 발생
public class ExceptionTest {
public static void main(String[] args) {
System.out.println(args[0]);
}
}
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 0 out of bounds for length 0
at ExceptionTest.main(ExceptionTest.java:3)
java의 런타임 에러
에러(error)은 어쩔 수 없지만, 예외(exception)는 처리하자
에러(error) | 프로그램 코드에 의해서 수습될 수 없는 심각한 오류 |
예외(exception) | 프로그램 코드에 의해서 수습될 수 있는 다소 미약한 오류 |
예외처리의 정의와 목적
정의 | 프로그램 실행 시 발생할 수 있는 예외의 발생에 대비한 코드를 작성하는 것 |
목적 | 프로그램의 비정상 종료를 막고, 정상적인 실행 상태를 유지하는 것 |
예외 클래스의 계층 구조
상속 계층도
Object: 최고 조상
Throwable: 클래스, 모든 오류의 조상
Exception과 RuntimeException
Exception 클래스들 | 사용자의 실수와 같은 외적인 요인에 의해 발생하는 예외 |
RuntimeException 클래스들 | 프로그래머의 실수로 발생하는 예외 |
'Java > JAVA2' 카테고리의 다른 글
printStackTrace(), getMessage() (0) | 2023.06.22 |
---|---|
예외 처리하기, try-catch문 (0) | 2023.06.20 |
익명 클래스(anonymous class) (0) | 2023.06.19 |
내부 클래스의 제어자와 접근성 (0) | 2023.06.18 |
내부 클래스(inner class) (0) | 2023.06.17 |