EverKB

Knowledge Base Ever

set_error_handler()로 치명적 레벨 오류를 캡처 할 수 없습니다

2019-11-19 01:52:19

라벨: PHP, set_error_handler, Fatal Errors, register_shutdown_function, error_get_last,

PHP에서 set_error_handler()를 사용하여 사용자 정의 오류 처리 기능을 구현하는 것은 매우 유용한 기술입니다. 그러나 set_error_handler()는 치명적인 오류를 포착하지 않습니다.

PHP 문서에 설명 된대로 다음 오류는 사용자 정의 함수로 처리 할 수 ​​없습니다.
E_ERROR
E_PARSE
E_CORE_ERROR
E_CORE_WARNING
E_COMPILE_ERROR
E_COMPILE_WARNING
E_STRICT
그러나 register_shutdown_function()와 error_get_last()를 함께 사용하면 치명적인 E_ERROR 오류를 잡아서 사용자 지정 오류 처리기로 보냅니다. 아래 코드는이 기술을 보여줍니다.
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);
}

라벨

CentOS7 CentOS PHP Linux Python3 Python MySQL MariaDB YUM JavaScript CSS Redis MySQL8 caching_sha2_password HTML mysql_native_password PHP7 PostgreSQL sub folder availability eth0 MariaDB10.4 pdo_sqlsrv SOCKS5 Web Server date Install MongoDB register_shutdown_function Symfony File Upload mssql-tools php-fpm sqlsrv Zend Framework ADDDATE DevExpress JetBrain network interface Shadowsocks-Libev unixODBC-devel height Port 80 string Aura error_get_last password policy requirements SOCKS Web Development data INDENTIFIED BY Redis5 SVN Fedora Media Writer msodbcsql SQLAlchemy absolute Deepin jemalloc mysqlclient Shadowsocks toggle convert FuelPHP PHPUnit Framework ss5.passwd at-symbol Error Control Operator margin password SOCKET vps daemon process IIS sudoers center Fatal Errors MongoDB4 Phalcon SQL Server 2017 WiFi .htaccess DATE_SUB set_error_handler TestCase Compiling PHP frequency conflict PHPUnit ss5.conf apr Elasticsearch7.3 particles.js Slim Vincent Garreau daemon HTTP Sudo Failed to build these modules: _uuid MongoDB pg_bha.conf SQL Server width DATE_ADD ip command scrollbar Tcp BBR Compiling Apache Frameworks MySQL-python PHPStorm ss5-3.8.9 Apache2.4 Elasticsearch libpython3.7m.so.1.0 NodeJs show VIM CURLOPT_POSTFIELDS substr Bluetooth Failed to build these modules: _ctypes Minimal ISO PECL SQL Date Funcitons Wi-Fi date sub INTERVAL root Tag Cloud CodeIgniter font-size ss5 apache httpd dual network interfaces Laravel node.js ShadowsocksR vertical-align CURLFille horiz-align PyCharm SUBDATE BarManager exec mb_substr PEAR SOCKS5 Proxy Server WebStorm date add IntelliJIDEA remi Tag Chrome find PHP5.5 src Apache du jQuery nginx Shadowsocks-Python V2Ray cURL hide

최신 기사