PHP, FATAL સ્તરની ભૂલોને પકડે છે

સત્તાવાર સંદર્ભ

સત્તાવાર વેબસાઇટ set_error_handler register_shutdown_function

બધી ભૂલોને સંપૂર્ણ રીતે કેવી રીતે પકડી શકાય

set_error_handler નો ઉપયોગ મોટાભાગના ભૂલ પ્રકારોને કેપ્ચર કરવા માટે થઈ શકે છે.જ્યારે FATAL લેવલની ભૂલ આવે છે, કારણ કે PHP સીધી ક્રિયાને સમાપ્ત કરે છે, set_error_handler દ્વારા સેટ કરેલ ક callલબbackક ફંક્શન ટ્રિગર થઈ શકતું નથી. આ સમયે, પ્રોગ્રામ સમાપ્ત કરવા માટે ક weલબbackક ફંક્શન સેટ કરવા માટે અમને રજીસ્ટર_શટડાઉન_ફંક્શનનો ઉપયોગ કરવાની જરૂર છે. તે નોંધવું જોઇએ કે રજીસ્ટર_શૂટડાઉન_ફંક્શન દ્વારા સેટ કરેલ ક callલબbackક પ્રક્રિયા સમાપ્ત થયા પછી ચલાવવામાં આવે છે, પ્રક્રિયામાં કોઈ ભૂલ છે કે કેમ તે ધ્યાનમાં લીધા વિના. તેથી આ ક callલબbackકમાં, આપણે ભૂલ પણ આવી છે કે નહીં તે નિર્ધારિત કરવાની પણ જરૂર છે, અને જો કોઈ ભૂલ આવી છે, તો અમે તેને લ theગમાં રેકોર્ડ કરીશું. વિગતો માટે, કૃપા કરીને નીચેના કોડનો સંદર્ભ લો.

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