본문 바로가기
Java | spring/Java Basic

Java RuntimeException, 자동 예외객체 생성

by 워니 wony 2019. 5. 8.

RuntimeException

예외가 발생하면 사용자는 반드시 예외처리를 해줘야 한다.

그러나 Exception 수많은 예외들 중에 RuntimeException 실행시에 발생하는 예외로서 사용자가 특별히 예외처리를 해주지 않아도 자바가 예외처리를 해준다.

상황이 되면 예외객체가 자동으로 생성된다.

 

따라서 RuntimeException 후손이 아닌 예외는 반드시 사용자가 예외처리를 주어야 한다.

대다수의 입출력, 파일처리 관련 클래스 들은 예외를 가지고 있기 때문에 관련 메소드를 사용하거나 객체를 생성한 경우에 try{ }catch{ }를 사용해서 예외처리를 해줘야 하는 경우가 다수 있다.

만약 개발툴 이클립스, Spring 등을 사용하고 있다면, 예외처리를 하지 않으면 x표시가 나타나고 Exception 처리를 하라고 안내문이 나오게 된다.

 

==> 대표적인 것들이 데이터 베이스 처리를 위한 클래스들을 포함하고 있는 java.sql 대부분의  메소드들은 예외를 포함하고 있는데  예외들은 RuntimeException 후손이 아니다. 그래서 사용자가 예외처리를 해야 한다.

 

==>, 입출력처리를 위한클래스들을 포함하고 있는

      java. io ~~~

      , 네트워크처리를 위한

      java.net ~~~

 

RuntimeException 예시

- RuntimeException 후손은 사용자가 예외처리를 하지 않아도 된다.

- ArrayIndexOutOfBoundsException도 RuntimeException 후손

Class 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)

반응형

댓글