[Java 언어 활용] 2.1 Throwable 클래스의 계층 구조
Java 언어에서는 예외나 에러가 발생할 때 Throwable 클래스 개체를 던져 개발자 코드에서 이를 잡아 처리할 수 있게 하고 있습니다. 이는 Throwable은 예외와 에러의 기반 클래스라는 말입니다.
[그림 2.1] Throwable 클래스의 계층 구조
예외(Exception)는 비교적 가벼운 오류로 개발자가 프로그램 방식으로 처리할 수 있다고 판단하는 상황에 발생하며 에러(Error)는 치명적인 오류가 발생하여 개발자가 처리할 수 없다고 판단하는 상황에 발생하는 것입니다.
예를 들어 프로그램에서 열고자 하는 파일이 없을 때는 예외를 발생합니다. 하지만 스레드의 자원 경쟁 문제에서 교착 상태에 빠지거나 가상 머신에서 문제가 발생하면 오류를 발생합니다.
다음은 배열의 유효하지 않은 인덱스를 사용할 때 발생하는 ArrayIndexOutOfBoundsException을 던져졌지만 개발자가 이를 잡아 처리하지 않았을 때의 코드와 출력 내용입니다.
▷ 소스 2.1 유효하지 않은 인덱스 사용하였을 때 예외 발생 코드
//유효하지 않은 인덱스 사용하였을 때 public class Program { public static void main(String[] args){ int[] arr = new int[3]; System.out.println("배열 생성"); arr[4] = 7; System.out.println("arr[4]에 7 대입"); } } |
▷ 소스 2.1 실행 결과
배열 생성 Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 4 at Program.main(Program.java:6) |
'언어 자료구조 알고리즘 > 디딤돌 Java 언어 Part2 활용' 카테고리의 다른 글
[Java 언어 활용] 3.2 컬렉션 (0) | 2016.12.10 |
---|---|
[Java 언어 활용] 3.1 제네릭(Generic) (0) | 2016.12.10 |
[Java 언어 활용] 3. 제네릭과 컬렉션 (0) | 2016.12.10 |
[Java 언어 활용] 2.5 예외 클래스 정의하기 (0) | 2016.12.08 |
[Java 언어 활용] 2.4 예외 발생에 관계없이 수행해야 할 코드는 finally 문 사용 (0) | 2016.12.08 |
[Java 언어 활용] 2.3 프로그램 방식으로 예외를 던지는 throw 문 (0) | 2016.12.08 |
[Java 언어 활용] 2.2 예외를 잡아서 처리하기 (0) | 2016.12.08 |
[Java 언어 활용] 2. 예외(Exception) (0) | 2016.12.08 |
[Java 언어 활용] 1.1 패키지와 import (0) | 2016.12.07 |
[Java 언어 활용] 1. 패키지 (0) | 2016.12.07 |