What is a PHP error?
An error is a type of mistake. We can say an error is a condition of having an incorrect or false knowledge or an error is defined as an unexpected, invalid program state from which it is impossibleto recover.
PHP Error can also be defined as “a deviation from accuracy or correctness”. A “mistake” is an error caused by a fault: the fault being misjudgment, carelessness or forgetfulness. An error message with the filename, Like number and a message describing the error, is sent to be the browser.
Types of PHP Error Reporting
There are 12 unique error types, which can be grouped into 3 main categories:
•Informational (Notices)
•Actionable (Warnings)
•Fatal (Runtime)
Informational Error
e.g. use of an undefined variable, defining a string without quotes, Referencing non-existent array
keys etc.
Actionable Error
Indicate that something clearly wrong has happened and what action should be taken.
e.g. file not present, database not available, missing function arguments, etc.
PHP error_reporting($level)
You can write your own function to handle PHP errors in any way you want.
You simply need to write a function with appropriate inputs, then register it in your script as the error handler.
PHP allows you to use its built-in error handling system to raise your own custom errors as
well.
This is accomplished via a function named trigger_error(), which allows you to raise any of
the three error types reserved for users: E_USER_NOTICE, E_USER_WARNING and
E_USER_ERROR.
When these errors are triggered, PHP's built-in handler will automatically wake up to handle them.
Fatal Error
Something so terrible has happened during the execution of your script that further processing simply cannot continue.
• e.g. parsing error, calling an undefined function, require() when the file does not exist, etc.
how to create a calculator in PHP
• e.g. parsing error, calling an undefined function, require() when the file does not exist, etc.
how to create a calculator in PHP
Identifying Error
Enabling Error
•php display_errors = On
•php error_reporting = ~E_ALL
Customizing Error Handling
•Generally, how PHP handles errors is defined by various constants in the installation (php.ini).
•There are several things you can control in your scripts, however.
•There are several things you can control in your scripts, however.
1. Set Error_Reporting Setting
PHP error_reporting($level)
This function can be used to control which errors are displayed, and which are simply ignored.
The effect only lasts for the duration of the execution of your script.
Code
<?php
// Turn off all error reporting
error_reporting(0);
// Report simple running errors
error_reporting(E_ERROR | E_WARNING | E_PARSE);
// Reporting E_NOTICE can be good too (to report uninitialized
// variables or catch variable name misspellings ...)
error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);
// Report all errors except E_NOTICE
error_reporting(E_ALL ^ E_NOTICE);
// Report ALL PHP errors
error_reporting(E_ALL);
?>
Hiding errors is NOT a solution to a problem.
•It is useful, however, to hide any errors produced on a live server.
While developing and debugging code, displaying all errors is highly recommended
2. Suppressing Error
The special @ operator can be used to suppress function errors.
•Any error produced by the function is suppressed and not displayed by PHP regardless of the PHP error reporting setting
.
Error suppression is NOT a solution to a problem.
•It can be useful to locally define your own error handling mechanisms.
•If you suppress any errors, you must check for them yourself elsewhere.
3. Custom Error Handler
You can write your own function to handle PHP errors in any way you want.
You simply need to write a function with appropriate inputs, then register it in your script as the error handler.
The function called set_error_handler(), it allows diverting all PHP errors to a custom function that are defined, instead of sending them to the default handler.
•The custom function must be capable of accepting a minimum of two mandatory arguments:
1.Error type
2.Message
•and up to three additional arguments:
1.Filename
2.Line number
3.Context
• These arguments are then used to create an error page that is friendlier and more informative than PHP's standard one-line error message
function err_handler(
$errcode,$errmsg,$file,$lineno, $context) {
echo ‘An error has occurred!<br />’;
echo “file: $file<br />”;
echo “line: $lineno<br />”;
echo “Problem: $errmsg”;
echo “Variable State: $contexts”;
return true;
}
•The function then needs to be registered as your custom error handler:
set_error_handler(‘err_handler’);
•You can ‘mask’ the custom error handler so it only receives certain types of error. e.g. to register a custom handler just for user-triggered errors:
set_error_handler(‘err_handler’,
4.Pulling the Trigger
PHP allows you to use its built-in error handling system to raise your own custom errors as
well.
This is accomplished via a function named trigger_error(), which allows you to raise any of
the three error types reserved for users: E_USER_NOTICE, E_USER_WARNING and
E_USER_ERROR.
When these errors are triggered, PHP's built-in handler will automatically wake up to handle them.
$db = @mysql_connect($h,$u,$p);
if (!$db) {
trigger_error(‘blah’,E_USER_ERROR);}
Review
•Various different error types exist in PHP.
•The error handling system is highly flexible, and your own error handling methods can be developed.
COMMENTS