시작하기무료로 시작하기

RuntimeException

RuntimeException은 코드에서 try/catch 블록이 필수는 아니에요. 대부분은 올바른 코딩 관행으로 예방할 수 있어요. 하지만 실수를 잡아내지 못하고 RuntimeException이 처리되지 않은 채 발생하면, 애플리케이션이 실패하고 사용자가 이해하기 어려울 수 있는 오류 정보가 표시돼요. 이 연습 문제에서는 가능한 RuntimeException을 잡지 않았을 때와 try/catch로 처리했을 때 각각 어떤 일이 발생하는지 확인해 보세요.

이 연습은 강의의 일부입니다

Java의 데이터 타입과 예외

강의 보기

연습 안내

  • 이 애플리케이션의 withoutTryCatch()withTryCatch 메서드를 살펴보고 두 메서드의 차이를 확인하세요.
  • 코드를 변경하지 않고 애플리케이션을 실행하세요. 그러면 withoutTryCatch() 메서드가 실행되어 RuntimeException이 발생해요.
  • 5번째 줄을 주석 처리하고 7번째 줄의 주석을 해제한 뒤 애플리케이션을 다시 실행하세요. 이번에는 withTryCatch() 메서드가 실행되어 RuntimeException을 처리해요.

실습형 인터랙티브 연습

이 예제를 이 샘플 코드를 완성하여 풀어보세요.

public class RuntimeExceptionHandling {

	public static void main(String[] args) {
		// Comment out this line
		withoutTryCatch();
		// Uncomment this line
		// withTryCatch();
	}

	public static void withoutTryCatch() {
		String[] mounts = { "Everest", "K2", "Kangchenjunga", "Lhotse" };
		String selectedMount = mounts[4];
		System.out.println("Selected item is: " + selectedMount);
	}

	public static void withTryCatch() {
		try {
			String[] mounts = { "Everest", "K2", "Kangchenjunga", "Lhotse" };
			String selectedMount = mounts[4];
			System.out.println("Selected item is: " + selectedMount);
		} catch (ArrayIndexOutOfBoundsException e) {
			System.out.println("Oops - made a mistake accessing the mounts array with a bad index.");
		}
	}
}
코드 편집 및 실행