Page 54 - 4657
P. 54
throw
Оператор throw використовується для порушення
виключення «вручну». Для того, щоб зробити це, потрібно мати
об'єкт підкласу класа Throwable, якому можна або одержати як
параметр оператора catch, або створити за допомогою оператора
new. Нижче приведена загальна форма оператора throw.
throw Об’єктТипуThrowable;
При досягненні цього оператора нормальне виконання коду
зразу припиняється, так що наступний за ним оператор не
виконується. Найближчий навколишній блок try перевіряється
на наявність відповіді збудженому виключенню оброблювача
catch. Якщо такий відшукається, керування передається йому.
Якщо ні, перевіряється наступний із вкладених операторів try, і
так доти поки або не буде найдений придатний розділ catch, або
оброблювач виключень системи Java не зупинить програму,
вивівши при цьому стан стека викликів. Нижче приведений
приклад, у якому спочатку створюється об'єкт-виключення,
потім оператор throw збуджує виняткову ситуацію, після чого те
ж виключення збуджується повторно - цього разу вже кодом
перехопивши його в перший раз роздягнула catch.
class ThrowDemo {
static void demoproc() {
try {
throw new NullPointerException("demo");
}
catch (NullPointerException e) {
System.out.println("caught inside demoproc");
throw e;
} }
public static void main(String args[]) {
try {
demoproc();
}
catch(NulPointerException e) {
System.out.println("recaught: " + e);
52