Error handling in PHP

Prerequisite: Types of Error
PHP is used for web development. Error handling in PHP is almost similar to error handling in all programming languages. The default error handling in PHP will give file name line number and error type.

Ways to handle PHP Errors:

  • Using die() method
  • Custom Error Handling

Basic error handling: Using die() function The die() function print a message and exit from current script.

Syntax:

die( $message )

Example:

<?php
  
// Php code showing default error handling
  
$file = fopen("geeks.txt", "w");
?>

Note: Run the above code and geeks.txt file is not present then it will display an run-time error message.
Runtime Error:

 PHP Warning: fopen(geeks.txt): failed to open stream: Permission denied 
in /home/dac923dff0a2558b37ba742613273073.php on line 2

To prevent this error use die() function. Below is the implementation of die() function:

Example:

<?php
  
// PHP code to check errors
  
// If file is not present 
// then exit from script
if( !file_exists("geeks.txt") ) {
    die("File is not present");
}
  
// If file is present
// then continue
else {
    $file = fopen("geeks.txt", "w");
}
?>

Note: If geeks.txt file not present then it will display output.
Output

File is not present

Custom Error handling: Creating a custom error handler in PHP is quite simple. Create a function that can be called when a error has been occurred in PHP.

Syntax:

error_function( $error_level, $error_message, $error_file, $error_line, $error_context)

Parameters: This function accepts five parameters as mentioned above and described below:

  • $error_level: It is required parameter and it must be an integer. There are predefined error levels.
  • $error_message: It is required parameter and it is the message which user want to print.
  • $error_file: It is optional parameter and used to specify the file in which error has been occurred.
  • $error_line: It is optional parameter and used to specify the line number in which error has been occurred.
  • $error_context: It is optional parameter and used to specify an array containing every variable and their value when error has been occurred.

error_level: These are the possible error level which are listed below:

  • 1 : .E_ERROR :fatal runtime error execution of script has been halted
  • 2 : E_WARNING :non fatal runtime error execution of script has been halted
  • 4 : E_PARSE :compile time error it is generated by the parser
  • 8 :E_NOTICE :The script found something that might be an error
  • 16 :E_CORE_ERROR :Fatal errors that occurred during initial startup of script
  • 32 :E_CORE_WARNING :Non fatal errors that occurred during initial startup of script
  • 8191 :E_ALL :All errors and warning

set_error_handler() Function: After creating myerror() function need to set custom error handler because in normal way PHP handles it but if user doing custom error handling then user have to set it in place of argument and pass out myerror function as a string.

Example:

<?php
  
// Creates my error function which prints message
//to user
function myerror($error_no, $error_msg) {
    echo "Error: [$error_no] $error_msg ";
    echo "\n Now Script will end";
      
    // When error occured script has to be stoped
    die();
  
// Setting set_error_handler
set_error_handler("myerror");
  
$a = 10;
$b = 0;
  
// This will generate error
echo($a / $b);;
?>

Output:

Error: [2] Division by zero 
 Now Script will end

Conclusion: It is always try to error handling using Custom error handling because it will show more specified message according to the user that can be helpful to the user. If error is not handle using Custom error handling then a error occurred then out script will be halted by default but if it handle error using Custom error handling then it can continue script after displaying error message.



My Personal Notes arrow_drop_up

All powers are within you You can do anything and everything Believe in that

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.