Командата throw

Командата throw се користи за експлицитно фрлање на исклучок во PHP. Таа прифаќа еден параметар - објект на исклучок, кој мора да биде инстанца од класа, наследена од базичната класа Exception. При повикување на оваа функција, извршувањето на тековниот код веднаш прекинува, и PHP се обидува да го пронајде соодветниот catch блок за обработка на исклучокот.

Синтакса

phpthrow new ExceptionClass(message, code, previous);

Пример

Прост пример за генерирање на исклучок:

php<?php
  $age = -5;
  if ($age < 0) {
    throw new Exception('Возраста не може да биде негативна');
  }
?>

Резултат од извршување на кодот:

phpFatal error: Uncaught Exception: Возраста не може да биде негативна

Пример

Пример со обработка на исклучок:

php<?php
  try {
    $res = 10 / 0;
    if (is_infinite($res)) {
      throw new Exception('Делење со нула');
    }
  } catch (Exception $e) {
    echo 'Грешка: ' . $e->getMessage();
  }
?>

Резултат од извршување на кодот:

php'Грешка: Делење со нула'

Пример

Користење на кориснички дефиниран исклучок:

php<?php
  class MyCustomException extends Exception {}
  
  try {
    throw new MyCustomException('Корисничка порака за грешка');
  } catch (MyCustomException $e) {
    echo 'Фатен кориснички исклучок: ' . $e->getMessage();
  }
?>

Резултат од извршување на кодот:

php'Фатен кориснички исклучок: Корисничка порака за грешка'

Погледнете ги исто така

  • конструкцијата try,
    која дефинира блок на код за обработка на исклучоци
  • конструкцијата catch,
    која ги фаќа и обработува исклучоците
  • класата Exception,
    која е основна класа за сите исклучоци