Klase Exception

Klase Exception ir PHP pamatklase visiem izņēmumiem. Tā satur pamata metodes izņēmumu apstrādei: kļūdas ziņojuma iegūšanu, kļūdas kodu, failu un rindu, kurā izņēmums tika izraisīts, kā arī izsaukumu steku. Izveidojot izņēmumu, var nodot ziņojumu, kļūdas kodu un iepriekšējo izņēmumu.

Sintakse

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

Piemērs

Izveidosim un apstrādāsim vienkāršu izņēmumu:

php<?php
  try {
    throw new Exception('Kaut kas nogāja greizi', 100);
  } catch (Exception $e) {
    echo 'Kļūda: ' . $e->getMessage();
  }
?>

Koda izpildes rezultāts:

php'Kļūda: Kaut kas nogāja greizi'

Piemērs

Izmantosim klases Exception pamatmetodes:

php<?php
  try {
    throw new Exception('Testa izņēmums', 123);
  } catch (Exception $e) {
    echo 'Ziņojums: ' . $e->getMessage() . "\n";
    echo 'Kods: ' . $e->getCode() . "\n";
    echo 'Fails: ' . $e->getFile() . "\n";
    echo 'Rinda: ' . $e->getLine() . "\n";
  }
?>

Koda izpildes rezultāts (piemērs):

php'Ziņojums: Testa izņēmums
Kods: 123
Fails: /path/to/file.php
Rinda: 3'

Piemērs

Iegūsim izsaukumu steku izņēmuma gadījumā:

php<?php
  function test() {
    throw new Exception('Steka izsekošanas tests');
  }
  
  try {
    test();
  } catch (Exception $e) {
    print_r($e->getTrace());
  }
?>

Koda izpildes rezultāts (piemērs):

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

Skatiet arī