Comanda throw

Comanda throw este utilizată pentru aruncarea explicită a unei excepții în PHP. Ea acceptă un singur parametru - un obiect excepție, care trebuie să fie o instanță a unei clase, moștenită din clasa de bază Exception. La apelarea acestei funcții, executarea codului curent se oprește imediat, iar PHP încearcă să găsească blocul catch corespunzător pentru gestionarea excepției.

Sintaxă

phpthrow new ExceptionClass(message, code, previous);

Exemplu

Un exemplu simplu de generare a unei excepții:

php<?php
  $age = -5;
  if ($age < 0) {
    throw new Exception('Vârsta nu poate fi negativă');
  }
?>

Rezultatul executării codului:

phpFatal error: Uncaught Exception: Vârsta nu poate fi negativă

Exemplu

Exemplu cu gestionarea excepției:

php<?php
  try {
    $res = 10 / 0;
    if (is_infinite($res)) {
      throw new Exception('Împărțire la zero');
    }
  } catch (Exception $e) {
    echo 'Eroare: ' . $e->getMessage();
  }
?>

Rezultatul executării codului:

php'Eroare: Împărțire la zero'

Exemplu

Utilizarea unei excepții personalizate:

php<?php
  class MyCustomException extends Exception {}
  
  try {
    throw new MyCustomException('Mesaj de eroare personalizat');
  } catch (MyCustomException $e) {
    echo 'Eroare personalizată prinsă: ' . $e->getMessage();
  }
?>

Rezultatul executării codului:

php'Eroare personalizată prinsă: Mesaj de eroare personalizat'

Vezi și

  • constructia try,
    care definește un bloc de cod pentru gestionarea excepțiilor
  • constructia catch,
    care interceptează și gestionează excepțiile
  • clasa Exception,
    care este clasa de bază pentru toate excepțiile