7.7 Processing Errors with a Custom Handler

 <  Day Day Up  >  

In PHP 4, you can enable a custom error handler for all errors by calling set_error_handler( ) . PHP 5 lets you refine that behavior by allowing you to specify which types of errors the handler should process.

To restrict set_error_handler( ) to a subset of errors, pass it a second argument. For example:

 set_error_handler('my_error_handler',  E_NOTICE); function my_error_handler($errno, $errstr, $errfile, $errline) {     print "A notice occurred\n"; } $a++;  A notice occurred  

This example sets my_error_handler( ) as the handler for E_NOTICE errors, but lets PHP handle all other error types. Since incrementing an undefined variable triggers a notice, PHP invokes the function.

If the custom error handler returns false , then PHP also does its own set of error handling, in addition to whatever you code inside your handler. For instance:

 set_error_handler('my_error_handler',  E_NOTICE); function my_error_handler($errno, $errstr, $errfile, $errline) {     print "A notice occurred\n";     return false; } $a++;  PHP Notice:  Undefined variable:  a...   A notice occurred  

This example is identical to the last one, except that my_error_handler( ) now returns false . As a result, you get two sets of messages: PHP's and yours.

 <  Day Day Up  >  


Upgrading to PHP 5
Upgrading to PHP 5
ISBN: 0596006365
EAN: 2147483647
Year: 2004
Pages: 144

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net