- set_exception_handler: documentation ( source)
- restore_exception_handler: documentation ( source)
- restore_error_handler: documentation ( source)
<?php
function stack_exception_handler($eh) {
static $ehs=array();
if (empty($ehs)) {
set_exception_handler(function($ex)use(&$ehs){foreach($ehs as $eh){call_user_func($eh,$ex);}});
}
$ehs[]=$eh;
register_postsend_function(function() { restore_exception_handler(); restore_error_handler(); throw new $ehs[0]('Test'); });
}
stack_exception_handler(function(){echo "handler 1 called!";});
stack_exception_handler(function(){echo "handler 2 called!";});
stack_exception_handler(function(){echo "handler 3 called!";});