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