EverKB

Knowledge Base Ever

set_error_handler() کے ساتھ FATAL سطح کی غلطی پکڑ نہیں سکتی

2019-11-19 01:52:19

لیبل لگائیں: PHP, set_error_handler, Fatal Errors, register_shutdown_function, error_get_last,

پی ایچ پی میں set_error_handler() کا استعمال کسٹم غلطی سے نمٹنے کے افعال کو نافذ کرنے کے لئے ایک بہت ہی مفید تکنیک ہے۔ تاہم ، set_error_handler() مہلک غلطیوں کو نہیں پکڑتا ہے۔

جیسا کہ پی ایچ پی کی دستاویزات میں بیان کیا گیا ہے ، مندرجہ ذیل غلطیوں کو صارف کے بیان کردہ افعال کے ذریعہ سنبھالا نہیں جاسکتا ہے۔
E_ERROR
E_PARSE
E_CORE_ERROR
E_CORE_WARNING
E_COMPILE_ERROR
E_COMPILE_WARNING
E_STRICT
لیکن ایک مہلک E_ERROR غلطی کو پکڑنے اور اسے کسٹم ایرر ہینڈلر پر بھیجنے کے لئے register_shutdown_function() اور error_get_last() ایک ساتھ استعمال کرکے۔ ذیل میں کوڈ اس تکنیک کو ظاہر کرتا ہے۔
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 caching_sha2_password HTML mysql_native_password PHP7 CSS Redis MySQL8 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 MySQL-python scrollbar Tcp BBR Compiling Apache Frameworks 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 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

تازہ ترین مضمون