php error handling and implementation methods

jacklove
Release: 2023-03-27 12:26:01
Original
1441 people have browsed it

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);
}
}
Copy after login

//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() 清除最后一次产生的错误信息
Copy after login

//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!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!