function _drupal_exception_handler

Provides custom PHP exception handling.

Uncaught exceptions are those not enclosed in a try/catch block. They are always fatal: the execution of the script will stop as soon as the exception handler exits.

Parameters

$exception: The exception object that was thrown.

3 string references to '_drupal_exception_handler'
ExceptionController::getLastCaller in drupal/core/lib/Drupal/Core/ExceptionController.php
Gets the last caller from a backtrace.
_drupal_bootstrap_configuration in drupal/core/includes/bootstrap.inc
Sets up the script environment and loads settings.php.
_drupal_get_last_caller in drupal/core/includes/errors.inc
Gets the last caller from a backtrace.

File

drupal/core/includes/bootstrap.inc, line 2241
Functions that need to be loaded on every Drupal request.

Code

function _drupal_exception_handler($exception) {
  require_once DRUPAL_ROOT . '/core/includes/errors.inc';
  try {

    // Log the message to the watchdog and return an error page to the user.
    _drupal_log_error(_drupal_decode_exception($exception), TRUE);
  } catch (Exception $exception2) {

    // Another uncaught exception was thrown while handling the first one.
    // If we are displaying errors, then do so with no possibility of a further uncaught exception being thrown.
    if (error_displayable()) {
      print '<h1>Additional uncaught exception thrown while handling exception.</h1>';
      print '<h2>Original</h2><p>' . _drupal_render_exception_safe($exception) . '</p>';
      print '<h2>Additional</h2><p>' . _drupal_render_exception_safe($exception2) . '</p><hr />';
    }
  }
}