क्लास ErrorException

क्लास ErrorException बेस क्लास Exception से इनहेरिट होती है और PHP त्रुटियों को एक्सेप्शन में बदलने के लिए उपयोग की जाती है। यह स्टैंडर्ड एक्सेप्शन फंक्शनैलिटी में त्रुटि की गंभीरता (severity) की जानकारी जोड़ती है। यह क्लास फंक्शन set_error_handler के साथ उपयोग करने पर विशेष रूप से उपयोगी होती है।

सिंटैक्स

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

उदाहरण

ErrorException बनाएं और संभालें:

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

कोड एक्सेक्यूशन का परिणाम:

php'Error: Critical error Severity: 1'

उदाहरण

PHP स्टैंडर्ड त्रुटियों को एक्सेप्शन में बदलें:

php<?php
  function errorHandler($severity, $message, $file, $line) {
    throw new ErrorException($message, 0, $severity, $file, $line);
  }
  
  set_error_handler('errorHandler');
  
  try {
    strpos(); // गलत संख्या में आर्ग्युमेंट्स
  } catch (ErrorException $e) {
    echo 'Caught exception: ' . $e->getMessage();
    echo ' in ' . $e->getFile();
    echo ' on line ' . $e->getLine();
  }
?>

कोड एक्सेक्यूशन का परिणाम (उदाहरण):

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

उदाहरण

त्रुटि की गंभीरता के बारे में जानकारी प्राप्त करें:

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');
  }
?>

कोड एक्सेक्यूशन का परिणाम:

php'Severity level: 2 Is warning: yes'

यह भी देखें

  • क्लास Exception,
    PHP में सभी एक्सेप्शन के लिए बेस क्लास
  • फंक्शन set_error_handler,
    जो यूजर डिफाइंड त्रुटि हैंडलर सेट करती है