ISN (services de réseaux sociaux internationaux - applications interactives et sites web dynamiques)
Les erreurs et les codes sources d'échantillons de journalisation - PHP Scripts
Building a basic error handler with custom error types
<?php
/**
* Error Handling Class
*
*/
/**
* Error Handling Class
*
* Code for: Setting vars, handling errors, mailing an error report and
* writing to an error log.
*
*/
class error_handle
{
/**
* The constructor function for error_handle.
*
* sets the error handler to the custom one below
*/
function error_handle()
{
// Sets the error handler to this one rather than default
// Parameters are the object containing the function and the
// function itsself. This is because the function is inside a class.
set_error_handler( array( &$this, 'error_handler' ) );
}
/**
* The error handler set by set_error_handler()
*
* Checks to see what sort of error is being triggered. It can catch any of the E_WARNING, E_ERROR and E_NOTICE as well as the
* E_USER_* errors. You can also add your own custom types by adding them like I have done with BIG_SCARY_ERROR. Where it says to
* add your own code, that is where you put the code to be executed when the error of that type occurs.
*
* @param string $error_type The type of error being handled.
* @param string $error_message The error message being handled.
* @param string $error_file The file where the error occurred.
* @param integer $error_line The line where the error occurred.
* @param string $error_context The context in which the error occurred.
* @return boolean
*/
function error_handler($error_type, $error_message, $error_file, $error_line, $error_context)
{
switch($error_type)
{
case E_ERROR:
case E_USER_ERROR:
// Add your own code here!
echo '<p class="error">'.$error_message,' (An error type ',$error_type,' occurred). The administrator has been notified. This page might not function correctly.<br /></p>';
break;
case E_WARNING:
case E_USER_WARNING:
// Add your own code here!
echo '<p class="error">'.$error_message,' (An error type ',$error_type,' occurred). The administrator has been notified. This page might not function correctly.<br /></p>';
break;
case E_NOTICE:
case E_USER_NOTICE:
// Add your own code here!
echo '<p class="error">'.$error_message,' (An error type ',$error_type,' occurred). The administrator has been notified. This page might not function correctly.<br /></p>';
break;
case BIG_SCARY_ERROR:
echo 'A *huge* scary error has been seen skulking around on line '.$error_line.' of '.$error_file.'! It\'s shouting "'.$error_message.'"';
break;
}
return true;
}
}
?>
To use this error handler, put in in a file, and include it into your script. Then, instantiate it (eg $error_handler = new error_handler() ). The whenever an error occurs, the class will catch it. To trigger your own errors do:
trigger_error('error message typed here', E_USER_ERROR);
(where the bit in capitals is the type you want to trigger).
So you can do this to trigger a custom error type:
trigger_error('I'm going to eat your PHP code!!! Bwahahahahaaa', BIG_SCARY_ERROR);
|