Klasė Exception

Klasė Exception yra pagrindinė visų išimčių klasė PHP. Joje yra pagrindiniai metodai darbui su išimtimis: klaidos pranešimo gavimas, klaidos kodas, failas ir eilutė kurioje iškilo išimtis, bei iškvietimų sekos. Kuriant išimtį galima perduoti pranešimą, klaidos kodą ir ankstesnę išimtį.

Sintaksė

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

Pavyzdys

Sukurkime ir apdorokime paprastą išimtį:

php<?php
  try {
    throw new Exception('Kažkas nutiko negerai', 100);
  } catch (Exception $e) {
    echo 'Klaida: ' . $e->getMessage();
  }
?>

Kodo vykdymo rezultatas:

php'Klaida: Kažkas nutiko negerai'

Pavyzdys

Naudokime pagrindinius Exception klasės metodus:

php<?php
  try {
    throw new Exception('Testinė išimtis', 123);
  } catch (Exception $e) {
    echo 'Pranešimas: ' . $e->getMessage() . "\n";
    echo 'Kodas: ' . $e->getCode() . "\n";
    echo 'Failas: ' . $e->getFile() . "\n";
    echo 'Eilutė: ' . $e->getLine() . "\n";
  }
?>

Kodo vykdymo rezultatas (pavyzdys):

php'Pranešimas: Testinė išimtis
Kodas: 123
Failas: /path/to/file.php
Eilutė: 3'

Pavyzdys

Gaukime iškvietimų seką išimties metu:

php<?php
  function test() {
    throw new Exception('Iškvietimų sekos testas');
  }
  
  try {
    test();
  } catch (Exception $e) {
    print_r($e->getTrace());
  }
?>

Kodo vykdymo rezultatas (pavyzdys):

php[
  [
    'file' => '/path/to/file.php',
    'line' => 5,
    'function' => 'test',
    'args' => []
  ]
]

Taip pat žiūrėkite