PHP Unconference Europe 2015

restore_exception_handler

(PHP 5)

restore_exception_handler Stellt den vorherigen Exceptionhandler wieder her

Beschreibung

bool restore_exception_handler ( void )

Diese Funktion kann genutzt werdem um die Installation eines Exceptionhandlers mit set_exception_handler() rückgängig zu machen und den vorherigen Handler wieder in Kraft zu setzen (entweder den eingebauten oder eine andere benutzerdefinierte Funktion).

Rückgabewerte

Diese Funktion gibt immer TRUE zurück.

Beispiele

Beispiel #1 restore_exception_handler() Beispiel

<?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('Dies löst den ersten Exceptionhandler aus ...');
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

[exception_handler_1] Dies löst den ersten Exceptionhandler aus ...

Siehe auch

add a note add a note

User Contributed Notes 1 note

up
0
rl7 at shinyblue dot net
8 months 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