mirror of
https://github.com/codeguy/php-the-right-way.git
synced 2025-08-18 19:41:15 +02:00
Expanded Errors section to cover more
This commit is contained in:
@@ -1,11 +1,36 @@
|
||||
---
|
||||
isChild: true
|
||||
---
|
||||
isChild: true
|
||||
---
|
||||
|
||||
## Errors {#errors_title}
|
||||
|
||||
PHP has several levels of error severity. The three most common types of messages are errors, notices and warnings. These have different levels of severity; `E_ERROR`, `E_NOTICE`, and `E_WARNING`. Errors are fatal run-time errors and are usually caused by faults in your code and need to be fixed as they'll cause PHP to stop executing. Warnings are non-fatal errors, execution of the script will not be halted. Notices are advisory messages caused by code that may or may not cause problems during the execution of the script, execution is not halted.
|
||||
PHP Errors differ to Exceptions in that they, Errors can halt the execution of your script depending on the level of severity. Exceptions on the other hand can be caught using `try catch` statements.
|
||||
|
||||
Another type of error message reported at compile time is the `E_STRICT` message, these messages are used to suggest changes to your code to help ensure best interoperability and forward compatibility for your code.
|
||||
### Error Severity
|
||||
|
||||
* [Predefined Constants for Error Handling](http://www.php.net/manual/en/errorfunc.constants.php)
|
||||
PHP's built in error reporting and logging, allows for different levels of reporting via the use of Predefined Constants. The three main constants are `E_ERROR`, `E_NOTICE`, and `E_WARNING`.
|
||||
|
||||
The different levels of error severity have different meanings. The three most common types of messages are Errors, Notices and Warnings. Errors are fatal run-time Errors and are usually caused by faults in your code and need to be fixed as they'll cause execution to be halted. Warnings are non-fatal errors, execution of the script will continue and dependant on settings the user may or not may see the Warning message. Notices are advisory messages caused by code that may or may not cause problems during script execution, execution is not halted and again depending on settings the user may or not see the Notice message.
|
||||
|
||||
Another type of Error Message reported at compile time are `E_STRICT` messages, these messages are used to suggest
|
||||
changes to your code to help ensure best interoperability and forward compatibility for your code.
|
||||
|
||||
### Changing PHP's Error Reporting Behaviour
|
||||
|
||||
Error Reporting can both be changed using PHP settings and PHP function calls. Using the built in PHP function `error_reporting()` you can set the level of errors for the duration of the script execution by passing one of the Predefined Constants. For more information on this relating to application environments check out the [Error Reporting][errorreport].
|
||||
|
||||
As well as setting the level of error reporting during script execution you can also suppress Errors using the Error Control Operator `@` by putting this operator at the beginning an expression.
|
||||
|
||||
* [Error Control Operators](http://php.net/manual/en/language.operators.errorcontrol.php)
|
||||
|
||||
### Error Exceptions
|
||||
|
||||
Optionally you can throw your Errors as Exceptions using the `ErrorException` class, this extends the `Exception` class. More information on this and details on how to use `ErrorException` can be found at [ErrorException Class][errorexception]. This is a common practice but it is not an advised practice. Errors are used to faults and potential issues in your code that should be corrected.
|
||||
|
||||
* [Predefined Constants for Error Handling](http://www.php.net/manual/en/errorfunc.constants.php)
|
||||
* [error_reporting](http://www.php.net/manual/en/function.error-reporting.php)
|
||||
* [ErrorException Class][errorexception]
|
||||
* [Reporting][errorreport]
|
||||
|
||||
[errorexception]: http://php.net/manual/en/class.errorexception.php
|
||||
[errorreport]: /#error_reporting
|
||||
|
Reference in New Issue
Block a user