НАЙКРАЩИЙ САЙТ ДЛЯ ВЕБ-РОЗРОБНИКІВ
Мова програмування Java. W3Schools українською. Уроки для початківців

En

Java Винятки - Try...Catch


Java Винятки

Під час виконання коду Java можуть виникнути різні помилки: помилки кодування, зроблені програмістом, помилки через неправильне введення чи інші непередбачені речі.

Якщо виникає помилка, Java зазвичай зупиняється та генерує повідомлення про помилку. Технічний термін для цього такий: Java викличе виключення (викине помилку).


Java try та catch

Інструкція try дозволяє визначити блок коду, який потрібно перевірити на помилки під час його виконання.

Інструкція catch дозволяє визначити блок коду, який буде виконано, якщо в блоці try станеться помилка.

Ключові слова try та catch бувають парами:

Синтаксис

try {
  //  Блок коду для спроби
}
catch(Виняток e) {
  //  Блок коду для обробки помилок
}

Розглянемо наступний приклад:

Це призведе до помилки, оскільки myNumbers[10] не існує.

public class Main {
  public static void main(String[ ] args) {
    int[] myNumbers = {1, 2, 3};
    System.out.println(myNumbers[10]); // error!
  }
}

Вихід буде приблизно таким:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 10
        at Main.main(Main.java:4)
Спробуйте самі »

Якщо сталася помилка, ми можемо використати try...catch, щоб виявити помилку та виконати певний код для її обробки:

Приклад

public class Main {
  public static void main(String[ ] args) {
    try {
      int[] myNumbers = {1, 2, 3};
      System.out.println(myNumbers[10]);
    } catch (Exception e) {
      System.out.println("Щось пішло не так.");
    }
  }
}

Вихід буде:

Щось пішло не так.
Спробуйте самі »

Finally (Фінал)

Інструкція finally дозволяє виконувати код після try...catch, незалежно від результату:

Приклад

public class Main {
  public static void main(String[] args) {
    try {
      int[] myNumbers = {1, 2, 3};
      System.out.println(myNumbers[10]);
    } catch (Exception e) {
      System.out.println("Щось пішло не так.");
    } finally {
      System.out.println(" 'try catch' завершено.");
    }
  }
}

Вихід буде:

Щось пішло не так.
'try catch' завершено.
Спробуйте самі »

Ключове слово throw

Інструкція throw дозволяє створити спеціальну помилку.

Інструкція throw використовується разом із типом винятку. У Java доступно багато типів винятків: ArithmeticException, FileNotFoundException, ArrayIndexOutOfBoundsException, SecurityException тощо:

Приклад

Створити виняток, якщо вік менше 18 (надрукувати "Доступ заборонено"). Якщо вам виповнилося 18 років, надрукувати "Доступ надано":

public class Main {
  static void checkAge(int age) {
    if (age < 18) {
      throw new ArithmeticException("Доступ заборонено - Вам повинно бути не менше 18 років.");
    }
    else {
      System.out.println("Доступ надано - ви достатньо дорослі!");
    }
  }

  public static void main(String[] args) {
    checkAge(15); // Встановіть вік 15 (що менше 18...)
  }
}

Вихід буде:

Exception in thread "main" java.lang.ArithmeticException: У доступі відмовлено - вам має бути не менше 18 років.
        at Main.checkAge(Main.java:4)
        at Main.main(Main.java:12)
Спробуйте самі »

Якби вік становив 20 років, ви не отримали б виключення:

Приклад

checkAge(20);

Вихід буде:

Доступ надано - Ви достатньо дорослі!
Спробуйте самі »

Перевірте себе за допомогою вправ

Вправа:

Вставте відсутні частини, щоб обробити помилку в коді нижче.

 {
int[] myNumbers = {1, 2, 3};
System.out.println(myNumbers[10]);
}  (Exception e) {
System.out.println("Щось пішло не так.");
}