Clasa Exception

Clasa Exception reprezintă clasa de bază pentru toate excepțiile din PHP. Conține metodele de bază pentru lucrul cu excepții: obținerea mesajului de eroare, codului de eroare, fișierului și liniei unde a apărut excepția, precum și a stivei de apeluri. La crearea unei excepții se poate transmite un mesaj, un cod de eroare și excepția anterioară.

Sintaxă

phpnew Exception(string $message = "", int $code = 0, Throwable $previous = null);

Exemplu

Să creăm și să gestionăm o excepție simplă:

php<?php
  try {
    throw new Exception('Ceva nu a funcționat corect', 100);
  } catch (Exception $e) {
    echo 'Eroare: ' . $e->getMessage();
  }
?>

Rezultatul executării codului:

php'Eroare: Ceva nu a funcționat corect'

Exemplu

Să utilizăm metodele principale ale clasei Exception:

php<?php
  try {
    throw new Exception('Excepție de test', 123);
  } catch (Exception $e) {
    echo 'Mesaj: ' . $e->getMessage() . "\n";
    echo 'Cod: ' . $e->getCode() . "\n";
    echo 'Fișier: ' . $e->getFile() . "\n";
    echo 'Linie: ' . $e->getLine() . "\n";
  }
?>

Rezultatul executării codului (exemplu):

php'Mesaj: Excepție de test
Cod: 123
Fișier: /cale/către/fișier.php
Linie: 3'

Exemplu

Să obținem stiva de apeluri la o excepție:

php<?php
  function test() {
    throw new Exception('Test stivă de apeluri');
  }
  
  try {
    test();
  } catch (Exception $e) {
    print_r($e->getTrace());
  }
?>

Rezultatul executării codului (exemplu):

php[
  [
    'file' => '/cale/către/fișier.php',
    'line' => 5,
    'function' => 'test',
    'args' => []
  ]
]

Vezi și