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