Bobby: Errorhandling

Beitrag lesen

Moin

ich habe es nun mal geschaft mich nach ewigen Zeiten mal mit ordentlichem Errorhandling zu beschäftigen.

ich habe in meiner config-Datei, die ich überall einbinde folgende Zeilen zur Exception-Behandlung eingefügt:

  
error_reporting(0);  
include("func.class.php");  
$func = new \inc\Func();  
function shutdown()  
{  
    global $func;  
    $a=error_get_last();  
    if($a!==null)  
        $func->savePHPException($a['message'],1,$a['file']." : ".$a['line'],WEBDIR.'error.html');  
}  
function exception_error_handler($errno, $errstr, $errfile, $errline) {  
    global $func;  
    if ($errno!=8)  
        $func->savePHPException($errstr,$errno,$errfile." : ".$errline);  
}  
register_shutdown_function('shutdown');  
set_error_handler("exception_error_handler");  

Die Func hat dann folgende Zeilen:

  
  
        function savePHPException($message,$code,$aktion,$ziel=false)  
        {  
            foreach($GLOBALS as $key=>$value)  
                if ($key!='GLOBALS')  
                    $errarr[$key]=$value;  
             $file=LOCALDIR."phperror.txt";  
             $fp=fopen($file,"a");  
             if ($fp!==FALSE)  
                fwrite($fp,$message.'|'.$code.'|'.$aktion.'|'.json_encode($errarr).'|'.date(time())."\n");  
             if (PRODUCTION===TRUE):  
                echo $message.'<br/>'.CHR(10).$code.'<br/>'.CHR(10).$aktion.'<br/>';  
             else:  
                 if (!empty($ziel)):  
                    header('Location:'.$ziel);  
                    exit();  
                 endif;  
             endif;  
        }  

Ist das Vorgehen Korrekt?

Ein ähnliches Vorgehen habe ich bei PDO-Fehlern gewählt.

Was könnte verbessert werden?

Gruß Bobby

--
-> Für jedes Problem gibt es eine Lösung, die einfach, sauber und falsch ist! <-
### Henry L. Mencken ###
-> Nicht das Problem macht die Schwierigkeiten, sondern unsere Sichtweise! <-
## Viktor Frankl ###
ie:{ br:> fl:{ va:} ls:< fo:) rl:( n4:( de:> ss:) ch:? js:( mo:} sh:) zu:)