PHP FATAL स्तर की त्रुटियों को पकड़ती है

आधिकारिक संदर्भ

सरकारी वेबसाइट set_error_handler register_shutdown_function

सभी त्रुटियों को पूरी तरह से कैसे पकड़ें

set_error_handler का उपयोग अधिकांश त्रुटि प्रकारों को पकड़ने के लिए किया जा सकता है। जब एक FATAL स्तर की त्रुटि का सामना करना पड़ता है, क्योंकि PHP सीधे ऑपरेशन को समाप्त करता है, set_error_handler द्वारा सेट किए गए कॉलबैक फ़ंक्शन को ट्रिगर नहीं किया जा सकता है। इस समय, हमें प्रोग्राम समाप्ति के लिए कॉलबैक फ़ंक्शन सेट करने के लिए register_shutdown_function का उपयोग करने की आवश्यकता है। यह ध्यान दिया जाना चाहिए कि कार्यक्रम समाप्त होने के बाद register_shutdown_function द्वारा निर्धारित कॉलबैक को क्रियान्वित किया जाता है, भले ही इस प्रक्रिया में कोई त्रुटि हो। इसलिए इस कॉलबैक में, हमें यह भी निर्धारित करना होगा कि क्या कोई त्रुटि हुई है, और यदि कोई त्रुटि हुई है, तो हम उसे लॉग में रिकॉर्ड करेंगे। जानकारी के लिए, कृपया निम्न कोड देखें।

            set_error_handler('exception_handler');
register_shutdown_function('shutdown_handler');
function exception_handler($err_no, $err_str, $err_file, $err_line)
{
    error_reporting(0);
    // save error log
    // ...
    error_reporting(E_ALL);
}
function shutdown_handler()
{
    $error = error_get_last();
    if (empty($error)) {
        return;
    }
    error_reporting(0);
    // save error log
    // ...
    error_reporting(E_ALL);
}