НачатьНачать бесплатно

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.");
		}
	}
}
Редактировать и запускать код