RuntimeException
RuntimeExceptions не вимагають блоків 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.");
}
}
}