Klas ErrorException

Die klas ErrorException erf van die basisklas Exception en word gebruik om PHP-foute in uitsonderings om te skakel. Dit voeg by die standaard funksionaliteit van uitsonderings inligting oor die erns van die fout (severity). Die klas is veral nuttig wanneer dit saam met die funksie set_error_handler gebruik word.

Sintaksis

phpnew ErrorException(
  string $message = "",
  int $code = 0,
  int $severity = E_ERROR,
  string $filename = __FILE__,
  int $lineno = __LINE__,
  Throwable $previous = null
);

Voorbeeld

Skep en hanteer 'n ErrorException:

php<?php
  try {
    throw new ErrorException('Kritieke fout', 0, E_ERROR);
  } catch (ErrorException $e) {
    echo 'Fout: ' . $e->getMessage();
    echo ' Ernst: ' . $e->getSeverity();
  }
?>

Resultaat van die kode-uitvoering:

php'Fout: Kritieke fout Ernst: 1'

Voorbeeld

Skakel standaard PHP-foute om in uitsonderings:

php<?php
  function errorHandler($severity, $message, $file, $line) {
    throw new ErrorException($message, 0, $severity, $file, $line);
  }
  
  set_error_handler('errorHandler');
  
  try {
    strpos(); // Verkeerde aantal argumente
  } catch (ErrorException $e) {
    echo 'Uitsondering gevang: ' . $e->getMessage();
    echo ' in ' . $e->getFile();
    echo ' op lyn ' . $e->getLine();
  }
?>

Resultaat van die kode-uitvoering (voorbeeld):

php'Uitsondering gevang: strpos() verwag ten minste 2 parameters, 0 gegee in /pad/na/lêer.php op lyn 10'

Voorbeeld

Kry inligting oor die erns van die fout:

php<?php
  try {
    throw new ErrorException('Waarskuwingsboodskap', 0, E_WARNING);
  } catch (ErrorException $e) {
    echo 'Ernsvlak: ' . $e->getSeverity();
    echo ' Is waarskuwing: ' . ($e->getSeverity() === E_WARNING ? 'ja' : 'nee');
  }
?>

Resultaat van die kode-uitvoering:

php'Ernsvlak: 2 Is waarskuwing: ja'

Sien ook