Page 227 - 6253
P. 227
прикладі створення користувацьких винятків.
9.2 Оператор throw
Під час написання програмного коду часто виникають ситуації, коли
розробнику необхідно самому ініціювати генерацію виняткової ситуації для
вказання, наприклад, на свідомо помилковий результат виконання операції, тощо.
Виняткову ситуацію можна створити за допомогою оператора throw, у випадку,
якщо об'єкт-виняток уже існує, або виконати його ініціалізацію після оператора
throw. Оператор throw використовується для генерації виняткової ситуації. Для
цього може бути використаний об'єкт класу Throwable або об'єкт його підкласу, а
також посилання на них. Загальна форма запису інструкції throw, що генерує
виняток наступна:
throw об’єкт Throwable;
Об'єкт-виняток може вже існувати або бути створений за допомогою
оператора new:
throw new IOException();
Після досягнення оператора throw виконання програмного коду припиняється.
Найближчий блок try перевіряється на наявність відповідного обробника catch.
Якщо він існує, управління передається йому, інакше перевіряється наступний із
вкладених операторів try. Ініціалізація об'єкту-винятку без оператора throw жодної
виняткової ситуації не згенерує.
Нижче наведений приклад, в якому спочатку створюється об'єкт-виняток,
після чого оператор throw генерує виняток, що обробляється в блоці catch, в якому
генерується інший виняток.
// Генерація виняткових ситуацій
import java.io.File;
public class ThrowGeneration {
public static void connectFile(File file) {
if (file == null || !file.exists())
throw new IllegalArgumentException();
// Генерація винятку
226