<?Php
error_reporting(0);// no error reporting
?>
<?php
// Turn off all error reporting
error_reporting(0);
// Report simple running errors
error_reporting(E_ERROR | E_WARNING | E_PARSE);
// E_WARNING is removed
error_reporting(E_ERROR | E_PARSE);
// Reporting E_NOTICE can be good too (to report uninitialized)
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);
// Report all PHP errors
error_reporting(-1);
// Same as error_reporting(E_ALL);
ini_set('error_reporting', E_ALL);
?>
Broadly PHP errors can be classified as
display_errors = On
With this we can display all types of error and this can be changed to
display_errors=Off
This will not display any error message to visitors.
<?Php
$one = $two;
?>
This will give this error message
Notice: Undefined variable: two in J:\php_files\t\error\test.php on line 13
You may not like this error message to be displayed to your visitors so we can add error_reporting function like this.
<?Php
error_reporting(0);// With this no error reporting will be there
$one = $two;
?>
No error message will be displayed with the above code.
error_reporting(E_ALL);
or
ini_set('display_errors', true);
ini_set('display_errors', 0);
error_reporting(0);
| Value | Constant | Description |
|---|---|---|
| 1 | E_ERROR (int) | Fatal run-time errors. These indicate errors that can not be recovered from, such as a memory allocation problem. Execution of the script is halted. |
| 2 | E_WARNING (int) | Run-time warnings (non-fatal errors). Execution of the script is not halted. |
| 4 | E_PARSE (int) | Compile-time parse errors. Parse errors should only be generated by the parser. |
| 8 | E_NOTICE (int) | Run-time notices. Indicate that the script encountered something that could indicate an error, but could also happen in the normal course of running a script. |
| 16 | E_CORE_ERROR (int) | Fatal errors that occur during PHP's initial startup. This is like an E_ERROR, except it is generated by the core of PHP. |
| 32 | E_CORE_WARNING (int) | Warnings (non-fatal errors) that occur during PHP's initial startup. This is like an E_WARNING, except it is generated by the core of PHP. |
| 64 | E_COMPILE_ERROR (int) | Fatal compile-time errors. This is like an E_ERROR, except it is generated by the Zend Scripting Engine. |
| 128 | E_COMPILE_WARNING (int) | Compile-time warnings (non-fatal errors). This is like an E_WARNING, except it is generated by the Zend Scripting Engine. |
| 256 | E_USER_ERROR (int) | User-generated error message. This is like an E_ERROR, except it is generated in PHP code by using the PHP function trigger_error(). |
| 512 | E_USER_WARNING (int) | User-generated warning message. This is like an E_WARNING, except it is generated in PHP code by using the PHP function trigger_error(). |
| 1024 | E_USER_NOTICE (int) | User-generated notice message. This is like an E_NOTICE, except it is generated in PHP code by using the PHP function trigger_error(). |
| 2048 | E_STRICT (int) | 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 (int) | Catchable fatal error. It indicates that a probably dangerous error occurred, but did not leave the Engine in an unstable state. If the error is not caught by a user defined handle (see also set_error_handler()), the application aborts as it was an E_ERROR. |
| 8192 | E_DEPRECATED (int) | Run-time notices. Enable this to receive warnings about code that will not work in future versions. |
| 16384 | E_USER_DEPRECATED (int) | User-generated warning message. This is like an E_DEPRECATED, except it is generated in PHP code by using the PHP function trigger_error(). |
| 32767 | E_ALL (int) | All errors, warnings, and notices. |
In PHP, the try-catch-finally block is used for handling exceptions. It helps in managing errors in a controlled and structured way.
<?php
try {
// Code that may cause an exception
$number = 10;
if ($number > 5) {
throw new Exception("The number is too large!");
}
echo "This will not be executed.";
} catch (Exception $e) {
// Code to handle the exception
echo 'Caught exception: ' . $e->getMessage();
}
?>
Explanation:
Output:
Caught exception: The number is too large!
<?php
$connection = null;
try {
// Attempt to connect to a database
$connection = new mysqli("localhost", "user", "password", "database");
// Throw an exception if the connection fails
if ($connection->connect_error) {
throw new Exception("Connection failed: " . $connection->connect_error);
}
echo "Connected successfully!";
} catch (Exception $e) {
// Handle the exception
echo "Error: " . $e->getMessage();
} finally {
// This will always execute, even if an exception was thrown
if ($connection) {
$connection->close();
echo " Connection closed.";
}
}
?>
Explanation:
Output (if connection fails):
Error: Connection failed: Access denied for user 'user'@'localhost'
Connection closed.
<?php
try {
// Code that may throw different exceptions
$num1 = 10;
$num2 = 0;
if ($num2 == 0) {
throw new DivisionByZeroError("Cannot divide by zero!");
}
$result = $num1 / $num2;
} catch (DivisionByZeroError $e) {
// Handle division by zero error
echo "Math error: " . $e->getMessage();
} catch (Exception $e) {
// Handle other general exceptions
echo "General error: " . $e->getMessage();
}
?>
Explanation:
Output:
Math error: Cannot divide by zero!
Author & Instructor at plus2net
I write and maintain practical tutorials on Python, PHP, SQL, JavaScript, HTML, jQuery, and web development at plus2net. The tutorials focus on clear explanations, working examples, and code that readers can test and adapt while learning.
| Hire Php Developer | 03-07-2017 |
| Great tutorial. This tutorial was really helpful to known the error reporting in PHP. Thanks. | |