## Class TErrorHandler

Description

TErrorHandler class

TErrorHandler handles all PHP user errors and exceptions generated during servicing user requests. It displays these errors using different templates and if possible, using languages preferred by the client user. Note, PHP parsing errors cannot be caught and handled by TErrorHandler.

The templates used to format the error output are stored under System.Exceptions. You may choose to use your own templates, should you not like the templates provided by Prado. Simply set ErrorTemplatePath to the path (in namespace format) storing your own templates.

There are two sets of templates, one for errors to be displayed to client users (called external errors), one for errors to be displayed to system developers (called internal errors). The template file name for the former is error[StatusCode][-LanguageCode].html, and for the latter it is exception[-LanguageCode].html, where StatusCode refers to response status code (e.g. 404, 500) specified when THttpException is thrown, and LanguageCode is the client user preferred language code (e.g. en, zh, de). The templates error.html and exception.html are default ones that are used if no other appropriate templates are available. Note, these templates are not Prado control templates. They are simply html files with keywords (e.g. %%ErrorMessage%%, %%Version%%) to be replaced with the corresponding information.

By default, TErrorHandler is registered with TApplication as the error handler module. It can be accessed via TApplication::getErrorHandler(). You seldom need to deal with the error handler directly. It is mainly used by the application object to handle errors.

TErrorHandler may be configured in application configuration file as follows <module id="error" type="TErrorHandler" ErrorTemplatePath="System.Exceptions" />

- since: 3.0
- version: $Revision: $ $Date: $
- author: Qiang Xue <qiang.xue@gmail.com>

Located in /Exceptions/TErrorHandler.php (line 52)

    TComponent
       |
       --TApplicationComponent
          |
          --TModule
             |
             --TErrorHandler

Class Constant Summary
ERROR_FILE_NAME = 'error'
EXCEPTION_FILE_NAME = 'exception'
SOURCE_LINES = 12
Method Summary
void displayException (Exception $exception)
string getErrorTemplatePath ()
void handleError (mixed $sender, mixed $param)
void handleExternalError (integer $statusCode, Exception $exception)
void handleRecursiveError (Exception $exception)
void init (TXmlElement $config)
void setErrorTemplatePath (string $value)
Methods
displayException (line 208)

Displays exception information.

Exceptions are displayed with rich context information, including the call stack and the context source code. This method is only invoked when application is in Debug mode.

- access: protected

void displayException (Exception $exception)

- Exception $exception: exception instance

getErrorTemplatePath (line 85)

- return: the directory containing error template files.
- access: public

string getErrorTemplatePath ()
handleError (line 113)

Handles PHP user errors and exceptions.

This is the event handler responding to the Error event raised in TApplication. The method mainly uses appropriate template to display the error/exception. It terminates the application immediately after the error is displayed.

- access: public

void handleError (mixed $sender, mixed $param)

- mixed $sender: sender of the event
- mixed $param: event parameter (if the event is raised by TApplication, it refers to the exception instance)

handleExternalError (line 147)

Displays error to the client user.

THttpException and errors happened when the application is in Debug mode will be displayed to the client user.

- access: protected

void handleExternalError (integer $statusCode, Exception $exception)

- integer $statusCode: response status code
- Exception $exception: exception instance

handleRecursiveError (line 184)

Handles error occurs during error handling (called recursive error).

THttpException and errors happened when the application is in Debug mode will be displayed to the client user. Error is displayed without using existing template to prevent further errors.

- access: protected

void handleRecursiveError (Exception $exception)

- Exception $exception: exception instance

init (line 77)

Initializes the module.

This method is required by IModule and is invoked by application.

- access: public

void init (TXmlElement $config)

- TXmlElement $config: module configuration

Redefinition of:

TModule::init()
  Initializes the module.

setErrorTemplatePath (line 96)

Sets the path storing all error and exception template files.

The path must be in namespace format, such as System.Exceptions (which is the default).

- access: public
- throws: TConfigurationException if the template path is invalid

void setErrorTemplatePath (string $value)

- string $value: template path in namespace format

#### Inherited Methods

Inherited From TModule

> TModule::getID()
> TModule::init()
> TModule::setID()

Inherited From TApplicationComponent

> TApplicationComponent::getApplication()
> TApplicationComponent::getRequest()
> TApplicationComponent::getResponse()
> TApplicationComponent::getService()
> TApplicationComponent::getSession()
> TApplicationComponent::getUser()
> TApplicationComponent::publishAsset()
> TApplicationComponent::publishFilePath()

Inherited From TComponent

> TComponent::attachEventHandler()
> TComponent::canGetProperty()
> TComponent::canSetProperty()
> TComponent::detachEventHandler()
> TComponent::evaluateExpression()
> TComponent::evaluateStatements()
> TComponent::getEventHandlers()
> TComponent::getSubProperty()
> TComponent::hasEvent()
> TComponent::hasEventHandler()
> TComponent::hasProperty()
> TComponent::raiseEvent()
> TComponent::setSubProperty()
> TComponent::__get()
> TComponent::__set()

Class Constants
ERROR_FILE_NAME = 'error' (line 57)

error template file basename

EXCEPTION_FILE_NAME = 'exception' (line 61)

exception template file basename

SOURCE_LINES = 12 (line 65)

number of lines before and after the error line to be displayed in case of an exception

Documentation generated on Mon, 01 May 2006 23:03:28 -0400 by phpDocumentor 1.3.0RC4