परिचय
PHP की Exception क्लास Throwable इंटरफेस इम्प्लीमेंट करती है। ErrorException क्लास Exception क्लास को एक्सटेंड करती है। ErrorException को स्पष्ट रूप से फेंकने के लिए है जब आप उन त्रुटियों को पकड़ना और संभालना चाहते हैं जिन्हें अन्यथा नजरअंदाज किया जाएगा, जैसे नोटिस या वार्निंग।
PHP कोर में निम्न पूर्वनिर्धारित एरर कॉन्स्टेंट होते हैं:
| मान | कॉन्स्टेंट | विवरण |
|---|---|---|
| 1 | E_ERROR | फैटल रन-टाइम एरर |
| 2 | E_WARNING | रन-टाइम वार्निंग (नॉन-फैटल) |
| 4 | E_PARSE | कंपाइल-टाइम पार्स एरर |
| 8 | E_NOTICE | रन-टाइम नोटिस |
| 16 | E_CORE_ERROR | PHP के प्रारंभिक स्टार्टअप के दौरान फैटल एरर |
| 32 | E_CORE_WARNING | PHP के प्रारंभिक स्टार्टअप के दौरान वार्निंग |
| 64 | E_COMPILE_ERROR | फैटल कंपाइल-टाइम एरर |
| 128 | E_COMPILE_WARNING | कंपाइल-टाइम वार्निंग |
| 256 | E_USER_ERROR | यूजर-जनरेटेड एरर संदेश |
| 512 | E_USER_WARNING | यूजर-जनरेटेड वार्निंग संदेश |
| 1024 | E_USER_NOTICE | यूजर-जनरेटेड नोटिस संदेश |
| 2048 | E_STRICT | इंटरऑपरेबिलिटी और फॉरवर्ड कम्पैटिबिलिटी के लिए कोड परिवर्तन सुझाव |
| 4096 | E_RECOVERABLE_ERROR | कैचेबल फैटल एरर |
| 8192 | E_DEPRECATED | रन-टाइम नोटिस |
| 16384 | E_USER_DEPRECATED | यूजर-जनरेटेड वार्निंग संदेश |
| 32767 | E_ALL | सभी एरर और वार्निंग, E_STRICT सहित |
Exception क्लास से इनहेरिट की गई प्रॉपर्टी और मेथड के अलावा, ErrorException क्लास एक प्रॉपर्टी और एक मेथड पेश करती है:
protected int $severity; final public getSeverity ( void ) : int
एक्सेप्शन की गंभीरता उपरोक्त तालिका में एरर प्रकार से जुड़ी पूर्णांक संख्या द्वारा दर्शाई जाती है।
ErrorException उदाहरण
निम्न स्क्रिप्ट में, एक यूजर-डिफाइंड फ़ंक्शन errhandler को set_error_handler() फ़ंक्शन के साथ एरर हैंडलर के रूप में सेट किया जाता है। यह फ़ाइल न मिलने की स्थिति में फैटल एरर का सामना होने पर ErrorException फेंकता है।
उदाहरण
<?php
function errhandler($severity, $message, $file, $line) {
if (!(error_reporting() & $severity)) {
echo "no error";
return;
}
throw new ErrorException("Fatal Error: No such file or directory", 0, E_ERROR);
}
set_error_handler("errhandler");
/* एक्सेप्शन ट्रिगर करें */
try {
$data = file_get_contents("nofile.php");
echo $data;
} catch (ErrorException $e) {
echo $e->getMessage();
}
?>
उपरोक्त उदाहरण निम्न आउटपुट प्रदर्शित करता है:
आउटपुट
Fatal Error: No such file or directory
उपयोग: वार्निंग/नोटिस को एक्सेप्शन में बदलकर एकीकृत त्रुटि प्रबंधन के लिए।