PHP 8.6.0 Beta 1 is available for testing

restore_exception_handler

(PHP 5, PHP 7, PHP 8)

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

Описание

function 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
12 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
*/
?>
+Добавить

AltStyle によって変換されたページ (->オリジナル) /