From aa2edcf52ee7438876d826283274bf7e271fad4a Mon Sep 17 00:00:00 2001 From: xue <> Date: Thu, 17 Nov 2005 15:28:20 +0000 Subject: Modified how errors are handled. --- framework/Exceptions/TErrorHandler.php | 62 ++++++++++++++++++++++++++++------ 1 file changed, 51 insertions(+), 11 deletions(-) (limited to 'framework/Exceptions/TErrorHandler.php') diff --git a/framework/Exceptions/TErrorHandler.php b/framework/Exceptions/TErrorHandler.php index f88396ce..47feb54c 100644 --- a/framework/Exceptions/TErrorHandler.php +++ b/framework/Exceptions/TErrorHandler.php @@ -1,26 +1,23 @@ attachEventHandler('Error',array($this,'handle')); - $this->_initialized=true; + $this->_application=$application; + $application->attachEventHandler('Error',array($this,'handleError')); $application->setErrorHandler($this); } @@ -40,9 +37,52 @@ class TErrorHandler extends TComponent implements IErrorHandler $this->_id=$value; } - public function handle($sender,$param) - { echo '...........................'; - echo $param; + public function handleError($sender,$param) + { + $type='Unhandled Exception'; + $this->displayException($param,$type); + } + + protected function displayException($exception,$type) + { + $lines=file($exception->getFile()); + $errorLine=$exception->getLine(); + $beginLine=$errorLine-9>=0?$errorLine-9:0; + $endLine=$errorLine+8<=count($lines)?$errorLine+8:count($lines); + $source=''; + for($i=$beginLine;$i<$endLine;++$i) + { + if($i===$errorLine-1) + { + $line=highlight_string(sprintf("Line %4d: %s",$i+1,$lines[$i]),true); + $source.="