示例#1
0
 function __construct($sMsg = "")
 {
     parent::__construct($sMsg);
     if (class_exists('AnwDebug') && AnwDebug::isEmergencyDebugEnabled()) {
         print "AnwUnexpectedException:" . $sMsg . "<br/>";
     }
     AnwDebug::log("**** new UnexpectedException: " . $sMsg . " ****");
 }
示例#2
0
function errorApp($e)
{
    $bLogEnvAvailable = class_exists("AnwComponent") && class_exists("AnwUtils");
    $nErrorNumber = false;
    if ($bLogEnvAvailable) {
        $nErrorNumber = AnwDebug::reportError($e);
    }
    print '<h1>Error</h1>';
    print '<div style="margin:0px auto; width:550px">';
    /*if ($e instanceof PhpRuntimeException)
    	{
    		print '<h1>Error</h1>';
    		
    		if (class_exists("AnwUtils") && AnwUtils::isViewDebugAuthorized())
    		{
    			print '<div style="margin:0px auto; width:550px">' .
    			'<p>'.$e->getMessage().' ('.get_class($e).')<br/>' .
    			'<span style="font-size:12px">'.$e->getFile().', line '.$e->getLine().'</span></p>' .
    			'</div>';
    		}
    	}
    	*/
    //display error details if user is allowed to view it
    if ($bLogEnvAvailable && AnwUtils::isViewDebugAuthorized() || class_exists("AnwDebug") && AnwDebug::isEmergencyDebugEnabled()) {
        print '<p>' . $e->getMessage() . ' (' . get_class($e) . ')<br/>';
        print '<span style="font-size:12px">' . $e->getFile() . ', line ' . $e->getLine() . '</span>';
        print '</p>';
    } else {
        print '<p>A problem occurred. Please try again later or contact an administrator.<br/>' . 'We apologize for inconvenience.</p>';
    }
    if ($nErrorNumber) {
        print '<p>Error has been logged. Please contact the administrator with the following error number : <b>' . $nErrorNumber . '</b></p>';
    }
    print '</div>';
    //display error trace and debug log if user is allowed to view it
    if ($bLogEnvAvailable && AnwUtils::isViewDebugAuthorized()) {
        //display trace
        print '<p>Trace :<br/><ul>';
        $asTrace = $e->getTrace();
        $bFirst = true;
        foreach ($asTrace as $sTrace) {
            $sCss = $bFirst ? 'color:red' : '';
            print '<li style="font-size:14px;' . $sCss . '">';
            if (isset($sTrace['class'])) {
                print $sTrace['class'];
            }
            if (isset($sTrace['type'])) {
                print $sTrace['type'];
            }
            print $sTrace['function'];
            if (isset($sTrace['args'])) {
                //hide args for security reasons
                foreach ($sTrace['args'] as $i => $sArg) {
                    $sTrace['args'][$i] = 'p' . ($i + 1);
                }
                print '(' . implode($sTrace['args'], ", ") . ')';
            }
            print '<br/><span style="font-size:12px">File ' . @$sTrace['file'] . ', line ' . @$sTrace['line'] . '</span><br/>';
            print '</li>';
            $bFirst = false;
        }
        print '</ul></p>';
        //display debug
        if (class_exists("AnwDebug")) {
            print '<p>Debug :<br/><div style="font-size:12px">' . AnwDebug::getLog() . '</font></p>';
        }
    }
    exit;
}