全局设置error_handler

时间:2012-06-19 04:30:25

标签: php linux error-handling

我有这段代码,如何将error_handler设置为所有函数。现在只有在foo1和&amp ;;之外发生错误时才会调用error_handler。 foo2的。

set_error_handler('error_handler',-1 & ~E_NOTICE & ~E_USER_NOTICE);

function error_handler($exception) {
// log the error
}


function foo1(){
throw new Exception("Error validating user input.");
        exit(0);
}


function foo2(){
throw new Exception("Error validating user input.");
        exit(0);
}

2 个答案:

答案 0 :(得分:0)

set_error_handler设置了全局错误处理程序,它已经适用于所有函数。 对于使用set_error_handler,您应该使用trigger_error来触发错误,而不是抛出异常,未被捕获的异常只会导致致命错误。

您在函数中使用Exception,然后它应该是set_exception_handler

答案 1 :(得分:0)

error_handler仅针对由PHP本身或使用trigger_error触发的错误进行调用。

但是您的foo1()foo2()函数会抛出异常;那些必须由set_exception_handler()处理。