PHP 8.5.0 Alpha 2 available for testing

restore_exception_handler

(PHP 5, PHP 7, PHP 8)

restore_exception_handler Восстанавливает предыдущую функцию обработчика исключений

Описание

restore_exception_handler(): true

Функцию вызывают после изменения обработчика исключений функцией set_exception_handler(), чтобы вернуться к предыдущему обработчику, которым станет или пользовательская функция обработки исключений, если такую определили, или встроенный обработчик.

Список параметров

Сигнатура функции не содержит параметров.

Возвращаемые значения

Функция возвращает логическое значение true.

Примеры

Пример #1 Пример восстановления предыдущего обработчика исключений функцией restore_exception_handler()

<?php

function exception_handler_1(Exception $e)
{
echo
'[' . __FUNCTION__ . '] ' . $e->getMessage();
}

function
exception_handler_2(Exception $e)
{
echo
'[' . __FUNCTION__ . '] ' . $e->getMessage();
}

set_exception_handler('exception_handler_1');
set_exception_handler('exception_handler_2');

restore_exception_handler();

throw new
Exception('Эта инструкция запустит первый обработчик исключений...');

?>

Результат выполнения приведённого примера:

[exception_handler_1] Эта инструкция запустит первый обработчик исключений...

Смотрите также

  • set_exception_handler() - Устанавливает пользовательскую функцию обработчика исключений
  • get_exception_handler() - Получает пользовательскую функцию обработчика исключений
  • set_error_handler() - Устанавливает пользовательский обработчик ошибок
  • restore_error_handler() - Восстанавливает предыдущую функцию обработчика ошибок
  • error_reporting() - Определяет, о каких PHP-ошибках сообщать

Добавить

Примечания пользователей 1 note

up
13
rl7 at shinyblue dot net
11 years ago
Note that this does not work within an exception handler.

e.g.

<?php

function handler1(Exception $e) {
echo
"handler1\n";
restore_exception_handler();
throw
$e;
}
function
handler2(Exception $e) {
echo
"handler2\n";
}

set_exception_handler( 'handler2' );
set_exception_handler( 'handler1' );

throw new
Exception( 'might expect to see handler1, handler2' );

/* Outputs:
handler1
PHP Fatal error: Uncaught exception 'Exception' with message 'might expect to see handler1, handler2' in /tmp/demo.php:15
Stack trace:
#0 {main}
thrown in /tmp/demo.php on line 15
*/

?>
To Top