[php5] Przechwytywanie ostrzeżeń

0

Mam pytanie. Jak w php 5 można przechwycić Warning i Notice?
Zwykłe try{...}catch (Exception e){...} nie działa :/

0

Może set_error_handler

0

Co prawda takie rozwiązanie nie jest najładniejsze, ale dzięki niemu zauważyłem, że to co otrzymuję, to nie jest ani Warning, ani Notice, tylko jakieś jeszcze inne (errno=2).

Bawię się z simplexml i chcę zabezpieczyć się, przed wczytywaniem błędnie sformatowanego kodu xml. W najgorszym wypadku wyłącze warningi i będę wypisywał lakoniczne "błąd", nie podając dokładniej co jest nie tak :/

0

tak jak zauważył prgtw włącz error_handler

dla przykłądu ja robię tak, żebym był poinformowany o błędach jakie wystąpiły na stronie :D


function moja_obsluga_bledu($aErrorNo, $aErrorStr, $aFile, $aLine, $aContext){
        $headers = "From: [email protected]\r\n";
        $headers .= "MIME-Version: 1.0\r\n";
        $body = "Numer bledu: ".$aErrorNo."\nTresc bledu: ".$aErrorStr."\nPlik wystapienia bledu: ".$aFile."\nLinia wystapienia bledu: ".$aLine."\nContext: ".$aContext;
        mail("[email protected]", "Błąd na stronie strona.pl", $body, $headers);
        header('Location: error.php');
        exit;
    }
    set_error_handler("moja_obsluga_bledu");
    error_reporting(2048);

i już dostaje maila z informacja o bledzie. i nie musze prosic uzytkownika zeby mnie informowal o bledzie bo sam sobie to zrobie

0

@jmail:
Ja robię tak samo ale do maila dołączam jeszcze informacje, od których zależy budowanie strony przez parser:
$_GET, $_POST, PHP_VERSION (akurat u mnie niektóre skrypty chodzą na php4 a niektóre na php5)

Dołączenie tych danych pozwala łatwiej zlokalizować błąd i uaktualnić plik php.

0

Jak już w ten sposób, to należałoby również dołączyć $_SERVER i $_COOKIE

1 użytkowników online, w tym zalogowanych: 0, gości: 1