Команди 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,
    ки синфи асосӣ барои ҳамаи истисноҳо мебошад