ErrorException synpy

ErrorException synpy Exception synpynyň esasyndan miras alýar we PHP ýalňyşlaryny kesgitli ýagdaýlara öwürmek üçin ulanylýar. Ol, adaty kesgitli ýagdaýlar funksionallygyna ýalňyşyň aýratynlyk derejesi (severity) baradaky maglumat goşýar. Synp, esasanam set_error_handler funksiýasy bilen birikdilende peýdalydyr.

Sintaksis

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

Mysal

ErrorException döredeliň we işleliň:

php<?php
  try {
    throw new ErrorException('Critical error', 0, E_ERROR);
  } catch (ErrorException $e) {
    echo 'Error: ' . $e->getMessage();
    echo ' Severity: ' . $e->getSeverity();
  }
?>

Kodyň ýerine ýetiriliş netijesi:

php'Error: Critical error Severity: 1'

Mysal

PHP-niň adaty ýalňyşlaryny kesgitli ýagdaýlara öwüreliň:

php<?php
  function errorHandler($severity, $message, $file, $line) {
    throw new ErrorException($message, 0, $severity, $file, $line);
  }
  
  set_error_handler('errorHandler');
  
  try {
    strpos(); // Argumentleriň sany nädogry
  } catch (ErrorException $e) {
    echo 'Caught exception: ' . $e->getMessage();
    echo ' in ' . $e->getFile();
    echo ' on line ' . $e->getLine();
  }
?>

Kodyň ýerine ýetiriliş netijesi (mysal):

php'Caught exception: strpos() expects at least 2 parameters, 0 given in /path/to/file.php on line 10'

Mysal

Ýalňyşyň aýratynlyk derejesi barada maglumat alyň:

php<?php
  try {
    throw new ErrorException('Warning message', 0, E_WARNING);
  } catch (ErrorException $e) {
    echo 'Severity level: ' . $e->getSeverity();
    echo ' Is warning: ' . ($e->getSeverity() === E_WARNING ? 'yes' : 'no');
  }
?>

Kodyň ýerine ýetiriliş netijesi:

php'Severity level: 2 Is warning: yes'

Şeýle-de görüň

  • synp Exception,
    PHP-de ähli kesgitli ýagdaýlar üçin esasy synp
  • funksiýa set_error_handler,
    ulanyjy tarapyndan kesgitlenen ýalňyş işleýji düzgünleýär