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.");
}
}
}