Hataları gibi Uyarılar Tedavisi

3 Cevap php

Ben sadece re-çarpanlarına sahip bir php uygulama var. Ne yazık ki bu gibi uyarılar bildirilecektir:

Uyarı: preg_match () parametre 2 hat 776 / home / yacoby / dev / netbeans / php / Zend / Db / Select.php verilen dize, nesne olmasını bekliyor

Hangi imkansız (ya da çok zor iş) bir callstack yüzden benim kod parçaları uyarı neden oluyor ve bir sürü kod var olduğu söyleyemem yok gibi sorunu çalışmak.

Ben (uygulama ölür ve stacktrace yazdırır olarak) hataları gibi uyarıları tedavisi için ya bir yöntem gerekir ya da ben hataları yazdırırken gösterilecek stacktrace gerekir. Bunu yapmak için bir yöntem var mı?

3 Cevap

http://www.php.net/manual/en/class.errorexception.php de örnek 1. görün

<?php
function exception_error_handler($errno, $errstr, $errfile, $errline ) {
    throw new ErrorException($errstr, $errno, 0, $errfile, $errline);
}
set_error_handler("exception_error_handler");

/* Trigger exception */
strpos();
?>

Sen set_error_handler kullanarak kendi hata işleyicisi define () olabilir

Ancak istediğiniz işleyici işlevine Eğer her hata sınıfı tedavi edebilir. Burada kullandığım temel bir şablon benim durumumda ben sadece ölümcül hataları işlemek istiyorum, bu yüzden uyarılar ve uyarıları görmezden.

Sizin durumunuzda uyarıları bir backtrace yapmak veya istediğiniz ancak onları log olabilir

function error_handler($errno,$message,$file,$line,$context) {

switch($errno) {
    // ignore warnings and notices
    case E_WARNING:
    case E_NOTICE:
    case E_USER_NOTICE:
    case E_USER_WARNING:
        break;
    // log PHP and user errors
    case E_ERROR:
    case E_USER_ERROR:
              // Do some processing on fatal errors
    }
}