From df31a176f904b5b4c2f9505fe2fe352176728f9e Mon Sep 17 00:00:00 2001 From: xue <> Date: Fri, 27 Jan 2006 23:56:46 +0000 Subject: Added error handling tutorial page. --- framework/Exceptions/TException.php | 17 ++++------ framework/Web/UI/TTemplateManager.php | 62 +++++++++++++++++------------------ 2 files changed, 37 insertions(+), 42 deletions(-) (limited to 'framework') diff --git a/framework/Exceptions/TException.php b/framework/Exceptions/TException.php index fb668458..1ad86f12 100644 --- a/framework/Exceptions/TException.php +++ b/framework/Exceptions/TException.php @@ -15,16 +15,19 @@ * * TException is the base class for all PRADO exceptions. * TException + * TApplicationException * TSystemException * TInvalidDataValueException * TInvalidDataTypeException + * TInvalidDataFormatException * TInvalidOperationException * TConfigurationException + * TPhpErrorException + * TSecurityException * TIOException * TDBException * THttpException * TNotSupportedException - * TApplicationException * * @author Qiang Xue * @version $Revision: $ $Date: $ @@ -119,15 +122,7 @@ class TNotSupportedException extends TSystemException { } -class TTemplateParsingException extends TSystemException -{ -} - -class TTemplateRuntimeException extends TSystemException -{ -} - -class TPhpErrorException extends TException +class TPhpErrorException extends TSystemException { public function __construct($errno,$errstr,$errfile,$errline) { @@ -151,7 +146,7 @@ class TPhpErrorException extends TException } -class THttpException extends TException +class THttpException extends TSystemException { private $_statusCode; diff --git a/framework/Web/UI/TTemplateManager.php b/framework/Web/UI/TTemplateManager.php index 07e27891..5bf0d4bb 100644 --- a/framework/Web/UI/TTemplateManager.php +++ b/framework/Web/UI/TTemplateManager.php @@ -420,7 +420,7 @@ class TTemplate extends TComponent implements ITemplate * If an object has no container, its container index is -1. * * @param string the template string - * @throws TTemplateParsingException if a parsing error is encountered + * @throws TConfigurationException if a parsing error is encountered */ protected function parse($input) { @@ -454,9 +454,9 @@ class TTemplate extends TComponent implements ITemplate { $line=count(explode("\n",substr($input,0,$matchEnd+1))); if($this->_tplFile===null) - throw new TTemplateParsingException('template_componenttag_invalid',"Line $line",$type,$e->getMessage()); + throw new TConfigurationException('template_componenttag_invalid',"Line $line",$type,$e->getMessage()); else - throw new TTemplateParsingException('template_componenttag_invalid',"{$this->_tplFile} (Line $line)",$type,$e->getMessage()); + throw new TConfigurationException('template_componenttag_invalid',"{$this->_tplFile} (Line $line)",$type,$e->getMessage()); } $tpl[$c++]=array($container,$type,$attributes); if($str[strlen($str)-2]!=='/') // open tag @@ -478,9 +478,9 @@ class TTemplate extends TComponent implements ITemplate { $line=count(explode("\n",substr($input,0,$matchEnd+1))); if($this->_tplFile===null) - throw new TTemplateParsingException('template_closingtag_unexpected',"Line $line",""); + throw new TConfigurationException('template_closingtag_unexpected',"Line $line",""); else - throw new TTemplateParsingException('template_closingtag_unexpected',"{$this->_tplFile} (Line $line)",""); + throw new TConfigurationException('template_closingtag_unexpected',"{$this->_tplFile} (Line $line)",""); } $name=array_pop($stack); @@ -492,9 +492,9 @@ class TTemplate extends TComponent implements ITemplate $tag=''; $line=count(explode("\n",substr($input,0,$matchEnd+1))); if($this->_tplFile===null) - throw new TTemplateParsingException('template_closingtag_expected',"Line $line",$tag); + throw new TConfigurationException('template_closingtag_expected',"Line $line",$tag); else - throw new TTemplateParsingException('template_closingtag_expected',"{$this->_tplFile} (Line $line)",$tag); + throw new TConfigurationException('template_closingtag_expected',"{$this->_tplFile} (Line $line)",$tag); } $container=$tpl[$container][0]; } @@ -509,9 +509,9 @@ class TTemplate extends TComponent implements ITemplate { $line=count(explode("\n",substr($input,0,$matchEnd+1))); if($this->_tplFile===null) - throw new TTemplateParsingException('template_directive_nonunique',"Line $line"); + throw new TConfigurationException('template_directive_nonunique',"Line $line"); else - throw new TTemplateParsingException('template_directive_nonunique',"{$this->_tplFile} (Line $line)"); + throw new TConfigurationException('template_directive_nonunique',"{$this->_tplFile} (Line $line)"); } $this->_directive=$this->parseAttributes($match[4][0]); } @@ -548,9 +548,9 @@ class TTemplate extends TComponent implements ITemplate { $line=count(explode("\n",substr($input,0,$matchEnd+1))); if($this->_tplFile===null) - throw new TTemplateParsingException('template_closingtag_unexpected',"Line $line",""); + throw new TConfigurationException('template_closingtag_unexpected',"Line $line",""); else - throw new TTemplateParsingException('template_closingtag_unexpected',"{$this->_tplFile} (Line $line)",""); + throw new TConfigurationException('template_closingtag_unexpected',"{$this->_tplFile} (Line $line)",""); } $name=array_pop($stack); if($name!=='@'.$prop) @@ -561,9 +561,9 @@ class TTemplate extends TComponent implements ITemplate $tag=''; $line=count(explode("\n",substr($input,0,$matchEnd+1))); if($this->_tplFile===null) - throw new TTemplateParsingException('template_closingtag_expected',"Line $line",$tag); + throw new TConfigurationException('template_closingtag_expected',"Line $line",$tag); else - throw new TTemplateParsingException('template_closingtag_expected',"{$this->_tplFile} (Line $line)",$tag); + throw new TConfigurationException('template_closingtag_expected',"{$this->_tplFile} (Line $line)",$tag); } if(($last=count($stack))<1 || $stack[$last-1][0]!=='@') { @@ -580,9 +580,9 @@ class TTemplate extends TComponent implements ITemplate { $line=count(explode("\n",substr($input,0,$matchEnd+1))); if($this->_tplFile===null) - throw new TTemplateParsingException('template_componenttag_invalid',"Line $line",$type,$e->getMessage()); + throw new TConfigurationException('template_componenttag_invalid',"Line $line",$type,$e->getMessage()); else - throw new TTemplateParsingException('template_componenttag_invalid',"{$this->_tplFile} (Line $line)",$type,$e->getMessage()); + throw new TConfigurationException('template_componenttag_invalid',"{$this->_tplFile} (Line $line)",$type,$e->getMessage()); } $tpl[$container][2][$prop]=$value; $textStart=$matchEnd+1; @@ -600,9 +600,9 @@ class TTemplate extends TComponent implements ITemplate { $line=count(explode("\n",substr($input,0,$matchEnd+1))); if($this->_tplFile===null) - throw new TTemplateParsingException('template_comments_forbidden',"Line $line"); + throw new TConfigurationException('template_comments_forbidden',"Line $line"); else - throw new TTemplateParsingException('template_comments_forbidden',"{$this->_tplFile} (Line $line)"); + throw new TConfigurationException('template_comments_forbidden',"{$this->_tplFile} (Line $line)"); } if($matchStart>$textStart) $tpl[$c++]=array($container,substr($input,$textStart,$matchStart-$textStart)); @@ -612,9 +612,9 @@ class TTemplate extends TComponent implements ITemplate { $line=count(explode("\n",substr($input,0,$matchEnd+1))); if($this->_tplFile===null) - throw new TTemplateParsingException('template_matching_unexpected',"Line $line",$match); + throw new TConfigurationException('template_matching_unexpected',"Line $line",$match); else - throw new TTemplateParsingException('template_matching_unexpected',"{$this->_tplFile} (Line $line)",$match); + throw new TConfigurationException('template_matching_unexpected',"{$this->_tplFile} (Line $line)",$match); } } if(!empty($stack)) @@ -626,9 +626,9 @@ class TTemplate extends TComponent implements ITemplate $tag=''; $line=count(explode("\n",substr($input,0,$matchEnd+1))); if($this->_tplFile===null) - throw new TTemplateParsingException('template_closingtag_expected',"Line $line",$tag); + throw new TConfigurationException('template_closingtag_expected',"Line $line",$tag); else - throw new TTemplateParsingException('template_closingtag_expected',"{$this->_tplFile} (Line $line)",$tag); + throw new TConfigurationException('template_closingtag_expected',"{$this->_tplFile} (Line $line)",$tag); } if($textStart$att) { if($att[0]===self::CONFIG_DATABIND) - throw new TTemplateParsingException('template_databind_forbidden',$name); + throw new TConfigurationException('template_databind_forbidden',$name); if(($pos=strpos($name,'.'))!==false) { // a subproperty, so the first segment must be readable $subname=substr($name,0,$pos); if(!is_callable(array($className,'get'.$subname))) - throw new TTemplateParsingException('template_property_unknown',$subname); + throw new TConfigurationException('template_property_unknown',$subname); } else if(strncasecmp($name,'on',2)===0) - throw new TTemplateParsingException('template_event_forbidden',$name); + throw new TConfigurationException('template_event_forbidden',$name); else { // id is still alowed for TComponent, even if id property doesn't exist if(strcasecmp($name,'id')!==0 && !is_callable(array($className,'set'.$name))) { if(is_callable(array($className,'get'.$name))) - throw new TTemplateParsingException('template_property_readonly',$name); + throw new TConfigurationException('template_property_readonly',$name); else - throw new TTemplateParsingException('template_property_unknown',$name); + throw new TConfigurationException('template_property_unknown',$name); } } } } else - throw new TTemplateParsingException('template_component_required',$type); + throw new TConfigurationException('template_component_required',$type); } } -- cgit v1.2.3