Error handling is the process of catching errors raised by your program and then taking appropriate action. If you would handle errors properly then it may lead to many unforeseen consequences.
Its very simple in PHP to handle an errors.
Using die() function:
While wirting your PHP program you should check all possible error condition before going ahead and take appropriate action when required.
Try following example without having /tmp/test.xt file and with this file.
<?php
if(!file_exists("/tmp/test.txt"))
{
die("File not found");
}
else
{
$file=fopen("/tmp/test.txt","r");
print "Opend file sucessfully";
}
// Test of the code here.
?>
|
Defining Custom Error Handling Function:
You can write your own function to handling any error. PHP provides you a framwork to define error handling function.
This function must be able to handle a minimum of two parameters (error level and error message) but can accept up to five parameters (optionally: file, line-number, and the error context):
Syntax
| error_function(error_level,error_message, error_file,error_line,error_context); |
| Parameter | Description |
|---|---|
| error_level | Required - Specifies the error report level for the user-defined error. Must be a value number. |
| error_message | Required - Specifies the error message for the user-defined error |
| error_file | Optional - Specifies the filename in which the error occurred |
| error_line | Optional - Specifies the line number in which the error occurred |
| error_context | Optional - Specifies an array containing every variable and their values in use when the error occurred |
Possible Error levels
These error report levels are the different types of error the user-defined error handler can be used for. These values cab used in combination using | operator| Value | Constant | Description |
|---|---|---|
| 1 | E_ERROR | Fatal run-time errors. Execution of the script is halted |
| 2 | E_WARNING | Non-fatal run-time errors. Execution of the script is not halted |
| 4 | E_PARSE | Compile-time parse errors. Parse errors should only be generated by the parser. |
| 8 | E_NOTICE | Run-time notices. The script found something that might be an error, but could also happen when running a script normally |
| 16 | E_CORE_ERROR | Fatal errors that occur during PHP's initial startup. |
| 32 | E_CORE_WARNING | Non-fatal run-time errors. This occurs during PHP's initial startup. |
| 256 | E_USER_ERROR | Fatal user-generated error. This is like an E_ERROR set by the programmer using the PHP function trigger_error() |
| 512 | E_USER_WARNING | Non-fatal user-generated warning. This is like an E_WARNING set by the programmer using the PHP function trigger_error() |
| 1024 | E_USER_NOTICE | User-generated notice. This is like an E_NOTICE set by the programmer using the PHP function trigger_error() |
| 2048 | E_STRICT | Run-time notices. Enable to have PHP suggest changes to your code which will ensure the best interoperability and forward compatibility of your code. |
| 4096 | E_RECOVERABLE_ERROR | Catchable fatal error. This is like an E_ERROR but can be caught by a user defined handle (see also set_error_handler()) |
| 8191 | E_ALL | All errors and warnings, except level E_STRICT (E_STRICT will be part of E_ALL as of PHP 6.0) |
int error_reporting ( [int $level] ) |
<?php
function handleError($errno, $errstr,$error_file,$error_line)
{
echo "<b>Error:</b> [$errno] $errstr - $error_file:$error_line";
echo "<br />";
echo "Terminating PHP Script";
die();
}
?>
|
<?php
error_reporting( E_ERROR );
function handleError($errno, $errstr,$error_file,$error_line)
{
echo "<b>Error:</b> [$errno] $errstr - $error_file:$error_line";
echo "<br />";
echo "Terminating PHP Script";
die();
}
//set error handler
set_error_handler("handleError");
//trigger error
myFunction();
?>
|
Exceptions Handling:
PHP 5 has an exception model similar to that of other programming languages. Exceptions are important and provides a better control over error handling.Lets explain thre new keyword related to exceptions.
- Try - A function using an exception should be in a "try" block. If the exception does not trigger, the code will continue as normal. However if the exception triggers, an exception is "thrown".
- Throw - This is how you trigger an exception. Each "throw" must have at least one "catch".
- Catch - - A "catch" block retrieves an exception and creates an object containing the exception information.
- An exception can be thrown, and caught ("catched") within PHP. Code may be surrounded in a try block.
- Each try must have at least one corresponding catch block. Multiple catch blocks can be used to catch different classes of exeptions.
- Exceptions can be thrown (or re-thrown) within a catch block.
Example:
Following is the piece of code, copy and paste this code into a file and verify the result.<?php
try {
$error = 'Always throw this error';
throw new Exception($error);
// Code following an exception is not executed.
echo 'Never executed';
} catch (Exception $e) {
echo 'Caught exception: ', $e->getMessage(), "\n";
}
// Continue execution
echo 'Hello World';
?>
|
- getMessage()- message of exception
- getCode() - code of exception
- getFile() - source filename
- getLine() - source line
- getTrace() - n array of the backtrace()
- getTraceAsString() - formated string of trace
Creating Custom Exception Handler:
You can define your own custome excpetion handler. Use following function to set a user-defined exception handler function.string set_exception_handler ( callback $exception_handler ) |
Example:
<?php
function exception_handler($exception) {
echo "Uncaught exception: " , $exception->getMessage(), "\n";
}
set_exception_handler('exception_handler');
throw new Exception('Uncaught Exception');
echo "Not Executed\n";
?>
|

0 komentar:
Posting Komentar