# ErrorHandler

> Handles exceptions with Yii error rendering and PSR-7 bridge support.

[API reference](/docs/api/index.md) › [PSR bridge](/docs/extensions/psr-bridge/reference/index.md) › [http](/docs/extensions/psr-bridge/reference/http/index.md) › ErrorHandler

| class | `yii2\extensions\psrbridge\http\ErrorHandler` |
| --- | --- |
| Extends | [`yii\web\ErrorHandler`](/docs/api/yii/web/errorhandler/index.md) » [`yii\base\ErrorHandler`](/docs/api/yii/base/errorhandler/index.md) » [`yii\base\Component`](/docs/api/yii/base/component/index.md) » [`yii\base\BaseObject`](/docs/api/yii/base/baseobject/index.md) |
| Implements | [`yii\base\Configurable`](/docs/api/yii/base/configurable/index.md) |
| Source | [`src/http/ErrorHandler.php`](https://github.com/yii2-extensions/psr-bridge/blob/main/src/http/ErrorHandler.php#L21) |

Handles exceptions with Yii error rendering and PSR-7 bridge support.

## Properties

| Property | Type | Description | Defined by |
| --- | --- | --- | --- |
| <span id="property-behaviors"></span>[`$behaviors`](/docs/api/yii/base/component/index.md#property-behaviors) read-only | `array<`[`yii\base\Behavior`](/docs/api/yii/base/behavior/index.md)`<static>>` | List of behaviors attached to this component. | [`yii\base\Component`](/docs/api/yii/base/component/index.md) |
| <span id="property-callStackItemView"></span>[`$callStackItemView`](/docs/api/yii/web/errorhandler/index.md#property-callStackItemView) | `string` | The path of the view file for rendering exceptions and errors call stack element. Default: `'@yii/views/errorHandler/callStackItem.php'`. | [`yii\web\ErrorHandler`](/docs/api/yii/web/errorhandler/index.md) |
| <span id="property-defaultResponseConfig"></span>`$defaultResponseConfig` | `array<string, mixed>` | Default configuration for creating fallback Response instances. Default: `['charset' => 'UTF-8']`. | `ErrorHandler` |
| <span id="property-discardExistingOutput"></span>[`$discardExistingOutput`](/docs/api/yii/base/errorhandler/index.md#property-discardExistingOutput) | `bool` | Whether to discard any existing page output before error display. Default: `true`. | [`yii\base\ErrorHandler`](/docs/api/yii/base/errorhandler/index.md) |
| <span id="property-displayVars"></span>[`$displayVars`](/docs/api/yii/web/errorhandler/index.md#property-displayVars) | `array` | List of the PHP predefined variables that should be displayed on the error page. Default: `['_GET', '_POST', '_FILES', '_COOKIE', '_SESSION']`. Available since 2.0.7. | [`yii\web\ErrorHandler`](/docs/api/yii/web/errorhandler/index.md) |
| <span id="property-errorAction"></span>[`$errorAction`](/docs/api/yii/web/errorhandler/index.md#property-errorAction) | `string\|null` | The route (e.g. `site/error`) to the controller action that will be used to display external errors. Default: `null`. | [`yii\web\ErrorHandler`](/docs/api/yii/web/errorhandler/index.md) |
| <span id="property-errorView"></span>[`$errorView`](/docs/api/yii/web/errorhandler/index.md#property-errorView) | `string` | The path of the view file for rendering exceptions without call stack information. Default: `'@yii/views/errorHandler/error.php'`. | [`yii\web\ErrorHandler`](/docs/api/yii/web/errorhandler/index.md) |
| <span id="property-exception"></span>[`$exception`](/docs/api/yii/base/errorhandler/index.md#property-exception) | [`Throwable`](https://www.php.net/manual/en/class.throwable.php)`\|null` | The exception that is being handled currently. Default: `null`. | [`yii\base\ErrorHandler`](/docs/api/yii/base/errorhandler/index.md) |
| <span id="property-exceptionView"></span>[`$exceptionView`](/docs/api/yii/web/errorhandler/index.md#property-exceptionView) | `string` | The path of the view file for rendering exceptions. Default: `'@yii/views/errorHandler/exception.php'`. | [`yii\web\ErrorHandler`](/docs/api/yii/web/errorhandler/index.md) |
| <span id="property-maxSourceLines"></span>[`$maxSourceLines`](/docs/api/yii/web/errorhandler/index.md#property-maxSourceLines) | `int` | Maximum number of source code lines to be displayed. Default: `19`. | [`yii\web\ErrorHandler`](/docs/api/yii/web/errorhandler/index.md) |
| <span id="property-maxTraceSourceLines"></span>[`$maxTraceSourceLines`](/docs/api/yii/web/errorhandler/index.md#property-maxTraceSourceLines) | `int` | Maximum number of trace source code lines to be displayed. Default: `13`. | [`yii\web\ErrorHandler`](/docs/api/yii/web/errorhandler/index.md) |
| <span id="property-memoryReserveSize"></span>`$memoryReserveSize` | `int` | Size of the memory reserve for handling fatal errors. Default: `1024 * 1024`. | `ErrorHandler` |
| <span id="property-previousExceptionView"></span>[`$previousExceptionView`](/docs/api/yii/web/errorhandler/index.md#property-previousExceptionView) | `string` | The path of the view file for rendering previous exceptions. Default: `'@yii/views/errorHandler/previousException.php'`. | [`yii\web\ErrorHandler`](/docs/api/yii/web/errorhandler/index.md) |
| <span id="property-response"></span>`$response` write-only | [`Response`](/docs/extensions/psr-bridge/reference/http/response/index.md) | Response instance with desired configuration. | `ErrorHandler` |
| <span id="property-silentExitOnException"></span>[`$silentExitOnException`](/docs/api/yii/base/errorhandler/index.md#property-silentExitOnException) | `bool` | If true - `handleException()` will finish script with `ExitCode::OK`. false - `ExitCode::UNSPECIFIED_ERROR`. Default: `null`. Available since 2.0.36. | [`yii\base\ErrorHandler`](/docs/api/yii/base/errorhandler/index.md) |
| <span id="property-traceLine"></span>[`$traceLine`](/docs/api/yii/web/errorhandler/index.md#property-traceLine) | `string` | Trace line with placeholders to be be substituted. Default: `'{html}'`. Available since 2.0.14. | [`yii\web\ErrorHandler`](/docs/api/yii/web/errorhandler/index.md) |

## Methods

| Method | Description | Defined by |
| --- | --- | --- |
| <span id="method-__construct"></span>[`__construct()`](/docs/api/yii/base/baseobject/index.md#method-__construct) | Constructor. | [`yii\base\BaseObject`](/docs/api/yii/base/baseobject/index.md) |
| <span id="method-__call"></span>[`__call()`](/docs/api/yii/base/component/index.md#method-__call) | Calls the named method which is not a class method. | [`yii\base\Component`](/docs/api/yii/base/component/index.md) |
| <span id="method-__clone"></span>[`__clone()`](/docs/api/yii/base/component/index.md#method-__clone) | This method is called after the object is created by cloning an existing one. | [`yii\base\Component`](/docs/api/yii/base/component/index.md) |
| <span id="method-__get"></span>[`__get()`](/docs/api/yii/base/component/index.md#method-__get) | Returns the value of a component property. | [`yii\base\Component`](/docs/api/yii/base/component/index.md) |
| <span id="method-__isset"></span>[`__isset()`](/docs/api/yii/base/component/index.md#method-__isset) | Checks if a property is set, i.e. defined and not null. | [`yii\base\Component`](/docs/api/yii/base/component/index.md) |
| <span id="method-__set"></span>[`__set()`](/docs/api/yii/base/component/index.md#method-__set) | Sets the value of a component property. | [`yii\base\Component`](/docs/api/yii/base/component/index.md) |
| <span id="method-__unset"></span>[`__unset()`](/docs/api/yii/base/component/index.md#method-__unset) | Sets a component property to be null. | [`yii\base\Component`](/docs/api/yii/base/component/index.md) |
| <span id="method-addTypeLinks"></span>[`addTypeLinks()`](/docs/api/yii/web/errorhandler/index.md#method-addTypeLinks) | Adds informational links to the given PHP type/class. | [`yii\web\ErrorHandler`](/docs/api/yii/web/errorhandler/index.md) |
| <span id="method-argumentsToString"></span>[`argumentsToString()`](/docs/api/yii/web/errorhandler/index.md#method-argumentsToString) | Converts arguments array to its string representation. | [`yii\web\ErrorHandler`](/docs/api/yii/web/errorhandler/index.md) |
| <span id="method-attachBehavior"></span>[`attachBehavior()`](/docs/api/yii/base/component/index.md#method-attachBehavior) | Attaches a behavior to this component. | [`yii\base\Component`](/docs/api/yii/base/component/index.md) |
| <span id="method-attachBehaviors"></span>[`attachBehaviors()`](/docs/api/yii/base/component/index.md#method-attachBehaviors) | Attaches a list of behaviors to the component. | [`yii\base\Component`](/docs/api/yii/base/component/index.md) |
| <span id="method-behaviors"></span>[`behaviors()`](/docs/api/yii/base/component/index.md#method-behaviors) | Returns a list of behaviors that this component should behave as. | [`yii\base\Component`](/docs/api/yii/base/component/index.md) |
| <span id="method-canGetProperty"></span>[`canGetProperty()`](/docs/api/yii/base/component/index.md#method-canGetProperty) | Returns a value indicating whether a property can be read. | [`yii\base\Component`](/docs/api/yii/base/component/index.md) |
| <span id="method-canSetProperty"></span>[`canSetProperty()`](/docs/api/yii/base/component/index.md#method-canSetProperty) | Returns a value indicating whether a property can be set. | [`yii\base\Component`](/docs/api/yii/base/component/index.md) |
| <span id="method-className"></span>[`className()`](/docs/api/yii/base/baseobject/index.md#method-className) static | Returns the fully qualified name of this class. | [`yii\base\BaseObject`](/docs/api/yii/base/baseobject/index.md) |
| [`clearOutput()`](#method-clearOutput) | Discards active output buffers, retaining level 1 when `YII_ENV_TEST` is `true`. | `ErrorHandler` |
| <span id="method-convertExceptionToString"></span>[`convertExceptionToString()`](/docs/api/yii/base/errorhandler/index.md#method-convertExceptionToString) static | Converts an exception into a simple string. | [`yii\base\ErrorHandler`](/docs/api/yii/base/errorhandler/index.md) |
| <span id="method-convertExceptionToVerboseString"></span>[`convertExceptionToVerboseString()`](/docs/api/yii/base/errorhandler/index.md#method-convertExceptionToVerboseString) static | Converts an exception into a string that has verbose information about the exception and its trace. | [`yii\base\ErrorHandler`](/docs/api/yii/base/errorhandler/index.md) |
| <span id="method-createFrameworkVersionLink"></span>[`createFrameworkVersionLink()`](/docs/api/yii/web/errorhandler/index.md#method-createFrameworkVersionLink) | Creates string containing HTML link which refers to the page with the current version of the framework and version number text. | [`yii\web\ErrorHandler`](/docs/api/yii/web/errorhandler/index.md) |
| <span id="method-createHttpStatusLink"></span>[`createHttpStatusLink()`](/docs/api/yii/web/errorhandler/index.md#method-createHttpStatusLink) | Creates HTML containing link to the page with the information on given HTTP status code. | [`yii\web\ErrorHandler`](/docs/api/yii/web/errorhandler/index.md) |
| <span id="method-createServerInformationLink"></span>[`createServerInformationLink()`](/docs/api/yii/web/errorhandler/index.md#method-createServerInformationLink) | Creates string containing HTML link which refers to the home page of determined web-server software and its full name. | [`yii\web\ErrorHandler`](/docs/api/yii/web/errorhandler/index.md) |
| <span id="method-detachBehavior"></span>[`detachBehavior()`](/docs/api/yii/base/component/index.md#method-detachBehavior) | Detaches a behavior from the component. | [`yii\base\Component`](/docs/api/yii/base/component/index.md) |
| <span id="method-detachBehaviors"></span>[`detachBehaviors()`](/docs/api/yii/base/component/index.md#method-detachBehaviors) | Detaches all behaviors from the component. | [`yii\base\Component`](/docs/api/yii/base/component/index.md) |
| <span id="method-ensureBehaviors"></span>[`ensureBehaviors()`](/docs/api/yii/base/component/index.md#method-ensureBehaviors) | Makes sure that the behaviors declared in [`behaviors()`](/docs/api/yii/base/component/index.md#method-behaviors) are attached to this component. | [`yii\base\Component`](/docs/api/yii/base/component/index.md) |
| <span id="method-getBehavior"></span>[`getBehavior()`](/docs/api/yii/base/component/index.md#method-getBehavior) | Returns the named behavior object. | [`yii\base\Component`](/docs/api/yii/base/component/index.md) |
| <span id="method-getBehaviors"></span>[`getBehaviors()`](/docs/api/yii/base/component/index.md#method-getBehaviors) | Returns all behaviors attached to this component. | [`yii\base\Component`](/docs/api/yii/base/component/index.md) |
| <span id="method-getExceptionName"></span>[`getExceptionName()`](/docs/api/yii/web/errorhandler/index.md#method-getExceptionName) | Returns human-readable exception name. | [`yii\web\ErrorHandler`](/docs/api/yii/web/errorhandler/index.md) |
| <span id="method-handleError"></span>[`handleError()`](/docs/api/yii/base/errorhandler/index.md#method-handleError) | Handles PHP execution errors such as warnings and notices. | [`yii\base\ErrorHandler`](/docs/api/yii/base/errorhandler/index.md) |
| [`handleException()`](#method-handleException) | Logs an exception and renders a bridge Yii response without sending it. | `ErrorHandler` |
| [`handleFatalError()`](#method-handleFatalError) | Releases reserved memory before delegating fatal-error rendering to Yii. | `ErrorHandler` |
| <span id="method-hasEventHandlers"></span>[`hasEventHandlers()`](/docs/api/yii/base/component/index.md#method-hasEventHandlers) | Returns a value indicating whether there is any handler attached to the named event. | [`yii\base\Component`](/docs/api/yii/base/component/index.md) |
| <span id="method-hasMethod"></span>[`hasMethod()`](/docs/api/yii/base/component/index.md#method-hasMethod) | Returns a value indicating whether a method is defined. | [`yii\base\Component`](/docs/api/yii/base/component/index.md) |
| <span id="method-hasProperty"></span>[`hasProperty()`](/docs/api/yii/base/component/index.md#method-hasProperty) | Returns a value indicating whether a property is defined for this component. | [`yii\base\Component`](/docs/api/yii/base/component/index.md) |
| <span id="method-htmlEncode"></span>[`htmlEncode()`](/docs/api/yii/web/errorhandler/index.md#method-htmlEncode) | Converts special characters to HTML entities. | [`yii\web\ErrorHandler`](/docs/api/yii/web/errorhandler/index.md) |
| <span id="method-init"></span>[`init()`](/docs/api/yii/base/errorhandler/index.md#method-init) |  | [`yii\base\ErrorHandler`](/docs/api/yii/base/errorhandler/index.md) |
| <span id="method-isCoreFile"></span>[`isCoreFile()`](/docs/api/yii/web/errorhandler/index.md#method-isCoreFile) | Determines whether given name of the file belongs to the framework. | [`yii\web\ErrorHandler`](/docs/api/yii/web/errorhandler/index.md) |
| <span id="method-logException"></span>[`logException()`](/docs/api/yii/base/errorhandler/index.md#method-logException) | Logs the given exception. | [`yii\base\ErrorHandler`](/docs/api/yii/base/errorhandler/index.md) |
| <span id="method-off"></span>[`off()`](/docs/api/yii/base/component/index.md#method-off) | Detaches an existing event handler from this component. | [`yii\base\Component`](/docs/api/yii/base/component/index.md) |
| <span id="method-on"></span>[`on()`](/docs/api/yii/base/component/index.md#method-on) | Attaches an event handler to an event. | [`yii\base\Component`](/docs/api/yii/base/component/index.md) |
| [`register()`](#method-register) | Registers PHP handlers with one weak shutdown dispatcher per process. | `ErrorHandler` |
| [`releaseResponse()`](#method-releaseResponse) | Releases request references after emission and finalization. | `ErrorHandler` |
| <span id="method-renderCallStack"></span>[`renderCallStack()`](/docs/api/yii/web/errorhandler/index.md#method-renderCallStack) | Renders call stack. | [`yii\web\ErrorHandler`](/docs/api/yii/web/errorhandler/index.md) |
| <span id="method-renderCallStackItem"></span>[`renderCallStackItem()`](/docs/api/yii/web/errorhandler/index.md#method-renderCallStackItem) | Renders a single call stack element. | [`yii\web\ErrorHandler`](/docs/api/yii/web/errorhandler/index.md) |
| <span id="method-renderFile"></span>[`renderFile()`](/docs/api/yii/web/errorhandler/index.md#method-renderFile) | Renders a view file as a PHP script. | [`yii\web\ErrorHandler`](/docs/api/yii/web/errorhandler/index.md) |
| <span id="method-renderPreviousExceptions"></span>[`renderPreviousExceptions()`](/docs/api/yii/web/errorhandler/index.md#method-renderPreviousExceptions) | Renders the previous exception stack for a given Exception. | [`yii\web\ErrorHandler`](/docs/api/yii/web/errorhandler/index.md) |
| <span id="method-renderRequest"></span>[`renderRequest()`](/docs/api/yii/web/errorhandler/index.md#method-renderRequest) | Renders the global variables of the request. | [`yii\web\ErrorHandler`](/docs/api/yii/web/errorhandler/index.md) |
| [`setResponse()`](#method-setResponse) | Sets the Response for error handling. | `ErrorHandler` |
| <span id="method-trigger"></span>[`trigger()`](/docs/api/yii/base/component/index.md#method-trigger) | Triggers an event. | [`yii\base\Component`](/docs/api/yii/base/component/index.md) |
| [`unregister()`](#method-unregister) | Restores PHP handlers and releases the current registration's reserve. | `ErrorHandler` |
| <span id="method-convertExceptionToArray"></span>[`convertExceptionToArray()`](/docs/api/yii/web/errorhandler/index.md#method-convertExceptionToArray) protected | Converts an exception into an array. | [`yii\web\ErrorHandler`](/docs/api/yii/web/errorhandler/index.md) |
| <span id="method-getTypeUrl"></span>[`getTypeUrl()`](/docs/api/yii/web/errorhandler/index.md#method-getTypeUrl) protected | Returns the informational link URL for a given PHP type/class. | [`yii\web\ErrorHandler`](/docs/api/yii/web/errorhandler/index.md) |
| [`handleFallbackExceptionMessage()`](#method-handleFallbackExceptionMessage) protected | Handles fallback exception rendering when an error occurs during exception processing. | `ErrorHandler` |
| [`renderException()`](#method-renderException) protected | Renders the exception and produces a [`Response`](/docs/extensions/psr-bridge/reference/http/response/index.md) object with appropriate error content. | `ErrorHandler` |
| <span id="method-shouldRenderSimpleHtml"></span>[`shouldRenderSimpleHtml()`](/docs/api/yii/web/errorhandler/index.md#method-shouldRenderSimpleHtml) protected |  | [`yii\web\ErrorHandler`](/docs/api/yii/web/errorhandler/index.md) |
| <span id="method-triggerAfterRender"></span>[`triggerAfterRender()`](/docs/api/yii/web/errorhandler/index.md#method-triggerAfterRender) protected | Triggers [`EVENT_AFTER_RENDER`](/docs/api/yii/web/errorhandler/index.md#const-EVENT_AFTER_RENDER) and returns final HTML content. | [`yii\web\ErrorHandler`](/docs/api/yii/web/errorhandler/index.md) |

## Events

| Event | Type | Description | Defined by |
| --- | --- | --- | --- |
| <span id="event-EVENT_SHUTDOWN"></span>[`EVENT_SHUTDOWN`](/docs/api/yii/base/errorhandler/index.md#event-EVENT_SHUTDOWN) | [`yii\base\Event`](/docs/api/yii/base/event/index.md) | An event that is triggered when the handler is called by shutdown function via [`handleFatalError()`](/docs/api/yii/base/errorhandler/index.md#method-handleFatalError). Event name: `'shutdown'`. Available since 2.0.46. | [`yii\base\ErrorHandler`](/docs/api/yii/base/errorhandler/index.md) |

## Constants

| Constant | Value | Description | Defined by |
| --- | --- | --- | --- |
| <span id="const-EVENT_AFTER_RENDER"></span>[`EVENT_AFTER_RENDER`](/docs/api/yii/web/errorhandler/index.md#const-EVENT_AFTER_RENDER) | `'afterRender'` | [`ErrorHandlerRenderEvent`](/docs/api/yii/web/errorhandlerrenderevent/index.md) an event that is triggered after HTML error content is rendered. Available since 22.0. | [`yii\web\ErrorHandler`](/docs/api/yii/web/errorhandler/index.md) |

## Method details

### clearOutput() <span id="method-clearOutput"></span>

```php
public function clearOutput(): void
```

Discards active output buffers, retaining level 1 when `YII_ENV_TEST` is `true`.

### handleException() <span id="method-handleException"></span>

```php
public function handleException(Throwable $exception): yii2\extensions\psrbridge\http\Response
```

Logs an exception and renders a bridge Yii response without sending it.

Unregisters the current error handler while rendering. If logging or rendering fails, returns a fallback
response. PSR conversion remains the caller's responsibility.

**Parameters**

| Parameter | Type | Description |
| --- | --- | --- |
| `$exception` | [`Throwable`](https://www.php.net/manual/en/class.throwable.php) | Exception to render. |

**Returns**

[`Response`](/docs/extensions/psr-bridge/reference/http/response/index.md): Yii response containing the rendered error.

### handleFatalError() <span id="method-handleFatalError"></span>

```php
public function handleFatalError(): mixed
```

Releases reserved memory before delegating fatal-error rendering to Yii.

**Returns**

`mixed`

### register() <span id="method-register"></span>

```php
public function register(): mixed
```

Registers PHP handlers with one weak shutdown dispatcher per process.

**Returns**

`mixed`

### releaseResponse() <span id="method-releaseResponse"></span>

```php
public function releaseResponse(): void
```

Releases request references after emission and finalization.

### setResponse() <span id="method-setResponse"></span>

```php
public function setResponse(yii2\extensions\psrbridge\http\Response $response): void
```

Sets the Response for error handling.

The provided Response will be used for error responses, preserving configuration such as format, charset, and
formatters. The Response will be cleared of any existing data before use.

**Parameters**

| Parameter | Type | Description |
| --- | --- | --- |
| `$response` | [`Response`](/docs/extensions/psr-bridge/reference/http/response/index.md) | Response instance with desired configuration. |

### unregister() <span id="method-unregister"></span>

```php
public function unregister(): mixed
```

Restores PHP handlers and releases the current registration's reserve.

**Returns**

`mixed`

### handleFallbackExceptionMessage() <span id="method-handleFallbackExceptionMessage"></span>

```php
protected function handleFallbackExceptionMessage(Throwable $exception, Throwable $previousException): yii2\extensions\psrbridge\http\Response
```

Handles fallback exception rendering when an error occurs during exception processing.

Produces a [`Response`](/docs/extensions/psr-bridge/reference/http/response/index.md) object with a generic error message and, in debug mode, includes detailed exception
information and a sanitized snapshot of server variables, excluding sensitive keys.

**Parameters**

| Parameter | Type | Description |
| --- | --- | --- |
| `$exception` | [`Throwable`](https://www.php.net/manual/en/class.throwable.php) | Exception thrown during error handling. |
| `$previousException` | [`Throwable`](https://www.php.net/manual/en/class.throwable.php) | Original exception that triggered error handling. |

**Returns**

[`Response`](/docs/extensions/psr-bridge/reference/http/response/index.md): Object containing the fallback error message and debug output if enabled.

### renderException() <span id="method-renderException"></span>

```php
protected function renderException(Throwable $exception): yii2\extensions\psrbridge\http\Response
```

Renders the exception and produces a [`Response`](/docs/extensions/psr-bridge/reference/http/response/index.md) object with appropriate error content.

Handles exception rendering for HTML, raw, and array formats, supporting custom error views and error actions.

**Parameters**

| Parameter | Type | Description |
| --- | --- | --- |
| `$exception` | [`Throwable`](https://www.php.net/manual/en/class.throwable.php) | Exception to render and convert to a [`Response`](/docs/extensions/psr-bridge/reference/http/response/index.md) object. |

**Returns**

[`Response`](/docs/extensions/psr-bridge/reference/http/response/index.md): Object containing the rendered exception output.

**Throws**

- [`yii\base\Exception`](/docs/api/yii/base/exception/index.md): if an error occurs during error action execution.
- [`yii\base\InvalidRouteException`](/docs/api/yii/base/invalidrouteexception/index.md): if the error action route is invalid or cannot be resolved.