0

私はこのコードを持っています.error_handlerをすべての関数に設定するにはどうすればよいですか. 現在、error_handler は、foo1 と 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);
}
4

2 に答える 2

0

set_error_handlerはグローバルエラーハンドラに設定されており、すでにすべての関数に対応しています。を使用set_error_handlerする場合はtrigger_error、例外をスローするのではなく、エラーをトリガーするために使用する必要があります。キャッチされない例外は、致命的なエラーのみを引き起こします。

Exception関数で 使用している場合は、 set_exception_handlerである必要があります。

于 2012-06-19T04:35:55.063 に答える
0

PHP自体またはを使用してトリガーされたerror_handlerエラーに対してのみ呼び出されますtrigger_error

しかし、あなたfoo1()foo2()関数は例外をスローしています。それらはによって処理される必要がありますset_exception_handler()

于 2012-06-19T04:36:05.647 に答える