1

Possible Duplicate:
How do I catch a PHP Fatal Error

I want to create a custom error handler but PHP ignores it still uses the built in error handler. The example below gives a built in fatal error because test() is not defined:

 function critical_error($error_number,$error_string,$error_file,$error_line,$error_context) { echo "<strong>error:</strong> echo ".$error_string; exit(); } set_error_handler("critical_error",8191); test(); exit; 

Any advice?

0

1 Answer 1

5

You are probably defining the error level wrong. Try using:

set_error_handler("critical_error", E_ALL); 

Also notice that:

The following error types cannot be handled with a user defined function: E_ERROR, E_PARSE, E_CORE_ERROR, E_CORE_WARNING, E_COMPILE_ERROR, E_COMPILE_WARNING, and most of E_STRICT raised in the file where set_error_handler() is called.

But without your complete script (including test()) it's hard to tell. I've tested it on my local server and everything works fine.

Sign up to request clarification or add additional context in comments.

3 Comments

Don't think he is, 8191 is everything from E_RECOVERABLE_ERROR and above. php.net/manual/en/errorfunc.constants.php
You're right about the notice part. Fatal error: Call to undefined function is E_ERROR and user defined error handler won't be fired.
Thank you for your advice, I think the issue was here that I did not add the E_ALL. test() is not defined, I wanted PHP to give me an fatal error to see if the custom error handler will catch it.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.