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:)
-> 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:)