This article will explain how to implement PHP error handling.
How to implement error, warning, and exception handling in php, which functions are used to handle the corresponding errors
php exception prompts are divided into three categories error/warning/notice
Error Supplement:
Fatal Error: Fatal error (script terminates execution)
E_ERROR // Fatal running error, error cannot be recovered, execution of script is suspended
E_CORE_ERROR // PHP startup Fatal error during initialization
E_COMPILE_ERROR // Fatal error during compilation, just like an E_ERROR generated by the Zend script engine
E_USER_ERROR // Custom error message. Like using the PHP function trigger_error (the error type is set to: E_USER_ERROR)
E_RECOVERABLE_ERROR //Fatal errors that can be caught. It indicates that a potentially dangerous error has occurred, but has not caused the PHP engine to become unstable.
Parse Error: Compilation time parsing error, syntax error (script terminates running)
E_PARSE //Compilation time syntax parsing error
Warning supplement: Warning error (only for A prompt message appears and the script does not terminate.)
E_WARNING // Runtime warning (non-fatal error).
E_CORE_WARNING // Warning (non-fatal error) that occurred during PHP initialization startup.
E_COMPILE_WARNING //Compilation warning
E_USER_WARNING //Warning message generated by the user
Exception notification supplement: notification error (only notification information is given, the script does not terminate the operation)
E_NOTICE // Runtime notification. Indicates that the script encounters a situation that may appear as an error.
E_USER_NOTICE // Notification information generated by the user.
php error handling implementation:
register_shutdown_function('funcName') // The parameter is the name of the function that needs to capture errors, but register_shutdown_function can only capture fatal errors during runtime, not during interpretation. Execution error, because it is a function executed after the program execution is completed (such as syntax errors, errors generated during runtime will not be caught)
set_error_handler('funcName') //Parameters It is the function name of the callback that needs to be captured. It is different from register_shutdown_function, which captures errors during the running of the function.
When the target file encounters an error during execution, the system will call back the specified function:
Example:
register_shutdown_function( "fatal_handler" ); set_error_handler("error_handler"); define('E_FATAL', E_ERROR | E_USER_ERROR | E_CORE_ERROR | E_COMPILE_ERROR | E_RECOVERABLE_ERROR| E_PARSE ); //获取fatal error function fatal_handler() { $error = error_get_last(); if($error && ($error["type"]===($error["type"] & E_FATAL))) { $errno = $error["type"]; // $errfile = $error["file"]; $errline = $error["line"]; $errstr = $error["message"]; error_handler($errno,$errstr,$errfile,$errline); } }
//Get all errors
function error_handler($errno,$errstr,$errfile,$errline){ $str=<< "errno":$errno "errstr":$errstr "errfile":$errfile "errline":$errline EOF; //获取到错误可以自己处理,比如记Log、报警等等 echo $str; } //error_get_last() 捕获到的执行错误结果 //error_clear_last() 清除最后一次产生的错误信息
//The above two can capture all errors, warnings, and exceptions, but for performance considerations, it is not recommended to use them to capture warning exceptions
This article introduces error handling methods. For more related content, please pay attention to the PHP Chinese website.
Related recommendations:
PHP Gets the specified value of a multi-dimensional array in which column of the array?
php basic learning: PHP arrays and data structures
php basic learning: PHP file system
The above is the detailed content of php error handling and implementation methods. For more information, please follow other related articles on the PHP Chinese website!