RuntimeException
예외가 발생하면 사용자는 반드시 예외처리를 해줘야 한다.
그러나 Exception의 수많은 예외들 중에 RuntimeException은 실행시에 발생하는 예외로서 사용자가 특별히 예외처리를 해주지 않아도 자바가 예외처리를 해준다.
그 상황이 되면 예외객체가 자동으로 생성된다.
따라서 RuntimeException의 후손이 아닌 예외는 반드시 사용자가 예외처리를 해 주어야 한다.
대다수의 입출력, 파일처리 관련 클래스 들은 예외를 가지고 있기 때문에 관련 메소드를 사용하거나 객체를 생성한 경우에 try{ }catch{ }를 사용해서 예외처리를 해줘야 하는 경우가 다수 있다.
만약 개발툴 이클립스, Spring 등을 사용하고 있다면, 예외처리를 하지 않으면 x표시가 나타나고 Exception 처리를 하라고 안내문이 나오게 된다.
==> 그 대표적인 것들이 데이터 베이스 처리를 위한 클래스들을 포함하고 있는 java.sql의 대부분의 메소드들은 예외를 포함하고 있는데 이 예외들은 RuntimeException의 후손이 아니다. 그래서 사용자가 예외처리를 해야 한다.
==>또, 입출력처리를 위한클래스들을 포함하고 있는
java. io ~~~
또, 네트워크처리를 위한
java.net ~~~
RuntimeException 예시
- RuntimeException의 후손은 사용자가 예외처리를 하지 않아도 된다.
- ArrayIndexOutOfBoundsException도 RuntimeException의 후손
Class ArrayIndexOutOfBoundsException
- java.lang.Object
- java.lang.Throwable
- java.lang.Exception
- java.lang.RuntimeException
- java.lang.IndexOutOfBoundsException
- java.lang.ArrayIndexOutOfBoundsException
ㅇ 자바가 예외처리를 이미 해준 클래스
- ArrayIndexOutOfBoundsException
package exam01;
public class ExceptionTest03 {
public static void main(String[] args) {
int []arr = {10,20,30};
System.out.println(arr[3]);
//배열의 인덱스를 넘었으므로 ArrayIndexOutOfBoundsException이 발생
// 그러나 RuntimeException의 후손이므로 try~catch 하지 않아도 된다.
/*
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 3
at exam01.ExceptionTest03.main(ExceptionTest03.java:8)
==> 이것은 자바가 예외처리를 해 준것
*/
}
}
(결과값)
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 3
at exam01.ExceptionTest03.main(ExceptionTest03.java:8)
'Java | spring > Java Basic' 카테고리의 다른 글
Thread 사이의 통신, 1:1 동작 멀티쓰레드 (0) | 2019.05.08 |
---|---|
Java, 동시 실행 스레드! Multi Thread 프로그래밍 (0) | 2019.05.08 |
JAVA Exception 예외 처리 (0) | 2019.05.08 |
자료구조, Stack 스택과 큐 Queue (0) | 2019.05.07 |
JAVA 제네릭 정의와 필요성 (+ArrayList 타입 오류 이유) (0) | 2019.05.07 |
댓글