1. Error reporting level error_reporting()
error_reporting(int $level);
PHP 5.4 and above E_ALL includes E_STRICT.
PHP Manual All error levels.
Example:
<?php // 关闭所有PHP错误报告 error_reporting(0); // Report simple running errors error_reporting(E_ERROR | E_WARNING | E_PARSE); // 报告 E_NOTICE也挺好 (报告未初始化的变量 // 或者捕获变量名的错误拼写) error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE); // 除了 E_NOTICE,报告其他所有错误 error_reporting(E_ALL ^ E_NOTICE); // 报告所有 PHP 错误 (参见 changelog) error_reporting(E_ALL); // 报告所有 PHP 错误 error_reporting(-1); // 和 error_reporting(E_ALL); 一样 ini_set('error_reporting', E_ALL); ?>
2. Error handling function set_error_handler()
set_error_handler(function (int $errno, string $errstr, string $errfile, int $errline) {
// ...
}, $error_types = E_ALL)specified by the above $error_types The error type will be intercepted by the error handling function (unless the function returns false)
When an error occurs in a statement prefixed with @, the $errno value is 0
The script will continue to execute after the processing function ends (so you need to actively call die() if necessary)
Example:
function handleError($level, $message, $file = '', $line = 0)
{
if (error_reporting() & $level) {
throw new ErrorException($message, 0, $level, $file, $line);
}
return false;
}Convert Error Exception
Note: Uncatchable Error
The following level errors cannot be user-defined Function to process:
E_ERROR
<strong>##E_PARSE<span style="font-size: 14px;"></span></strong>
<strong>E_CORE_ERROR<span style="font-size: 14px;"></span></strong>
##E_CORE_WARNING<strong><span style="font-size: 14px;"></span></strong> <strong><span style="font-size: 14px;"></span></strong>
##E_COMPILE_ERROR<strong><span style="font-size: 14px;"></span></strong>
<strong><span style="font-size: 14px;"></span></strong>Most E_STRICT generated in the file where the
function is called. These uncaught errors can be handled in register_shutdown_function() (but the script will still end)
3. 异常处理函数 set_exception_handler <span style="font-size: 14px;"></span> 在用户自定义异常处理函数内部, 可根据情况做一下处理: 日志记录错误 web 渲染错误页面 console 渲染错误提示 <span style="font-size: 14px;"></span> 4. PHP 中止时执行函数 在用户自定义脚本中止处理函数内部, 可根据情况做一下处理: 判断是否因严重错误而结束脚本(无法被 set_error_handler 捕获的错误中止脚本) 以下错误无法被 若因为错误而结束脚本, 若是严重错误则可将其转为 异常类, 并由异常处理函数统一处理. Note: 多次调用 除非在某个注册的方法内部调用 exit() Note: 进程被信号 以上就是关于错误异常的处理,如有错误请指出。不胜感激! 更多相关问题请访问PHP中文网:PHP视频教程 <span style="font-size: 14px;"></span>// < PHP 7
set_exception_handler('handleException')
// < PHP 7
handleException(Exception $ex)
{
echo "Uncaught exception: " , $ex->getMessage(), "\n";
}
// >= PHP 7
handleException(Throwable $ex)
{
echo "Uncaught exception: " , $ex->getMessage(), "\n";
}<span style="font-size: 14px;">register_shutdown_function</span>register_shutdown_function(function () {
}, $para1, $param2, ...)register_shutdown_function('handleShutdown')
function handleShutdown()
{
if (! is_null($error = error_get_last()) && isFatal($error['type'])) {
// handleException() 函数同时处理 set_exception_handler
handleException(new \ErrorException(
$error['message'], $error['type'], 0, $error['file'], $error['line'],
));
}
}
function isFatal($type)
{
return in_array($type, [E_COMPILE_ERROR, E_CORE_ERROR, E_ERROR, E_PARSE]);
}<span style="font-size: 14px;"></span> set_error_handler 捕获E_ERRORE_PARSEE_CORE_ERRORE_CORE_WARNINGE_COMPILE_ERRORE_COMPILE_WARNINGregister_shutdown_function 时不会互相覆盖, 而是会按照注册顺序被依次调用.SIGTERM 或 SIGKILL 杀死时中止函数不会被调用. 可通过 pcntl_signal 捕获信号, 再在其中调用 exit() 来进行正常中止。
The above is the detailed content of Detailed introduction to handling exception errors in PHP. For more information, please follow other related articles on the PHP Chinese website!
PHP's Purpose: Building Dynamic WebsitesApr 15, 2025 am 12:18 AMPHP is used to build dynamic websites, and its core functions include: 1. Generate dynamic content and generate web pages in real time by connecting with the database; 2. Process user interaction and form submissions, verify inputs and respond to operations; 3. Manage sessions and user authentication to provide a personalized experience; 4. Optimize performance and follow best practices to improve website efficiency and security.
PHP: Handling Databases and Server-Side LogicApr 15, 2025 am 12:15 AMPHP uses MySQLi and PDO extensions to interact in database operations and server-side logic processing, and processes server-side logic through functions such as session management. 1) Use MySQLi or PDO to connect to the database and execute SQL queries. 2) Handle HTTP requests and user status through session management and other functions. 3) Use transactions to ensure the atomicity of database operations. 4) Prevent SQL injection, use exception handling and closing connections for debugging. 5) Optimize performance through indexing and cache, write highly readable code and perform error handling.
How do you prevent SQL Injection in PHP? (Prepared statements, PDO)Apr 15, 2025 am 12:15 AMUsing preprocessing statements and PDO in PHP can effectively prevent SQL injection attacks. 1) Use PDO to connect to the database and set the error mode. 2) Create preprocessing statements through the prepare method and pass data using placeholders and execute methods. 3) Process query results and ensure the security and performance of the code.
PHP and Python: Code Examples and ComparisonApr 15, 2025 am 12:07 AMPHP and Python have their own advantages and disadvantages, and the choice depends on project needs and personal preferences. 1.PHP is suitable for rapid development and maintenance of large-scale web applications. 2. Python dominates the field of data science and machine learning.
PHP in Action: Real-World Examples and ApplicationsApr 14, 2025 am 12:19 AMPHP is widely used in e-commerce, content management systems and API development. 1) E-commerce: used for shopping cart function and payment processing. 2) Content management system: used for dynamic content generation and user management. 3) API development: used for RESTful API development and API security. Through performance optimization and best practices, the efficiency and maintainability of PHP applications are improved.
PHP: Creating Interactive Web Content with EaseApr 14, 2025 am 12:15 AMPHP makes it easy to create interactive web content. 1) Dynamically generate content by embedding HTML and display it in real time based on user input or database data. 2) Process form submission and generate dynamic output to ensure that htmlspecialchars is used to prevent XSS. 3) Use MySQL to create a user registration system, and use password_hash and preprocessing statements to enhance security. Mastering these techniques will improve the efficiency of web development.
PHP and Python: Comparing Two Popular Programming LanguagesApr 14, 2025 am 12:13 AMPHP and Python each have their own advantages, and choose according to project requirements. 1.PHP is suitable for web development, especially for rapid development and maintenance of websites. 2. Python is suitable for data science, machine learning and artificial intelligence, with concise syntax and suitable for beginners.
The Enduring Relevance of PHP: Is It Still Alive?Apr 14, 2025 am 12:12 AMPHP is still dynamic and still occupies an important position in the field of modern programming. 1) PHP's simplicity and powerful community support make it widely used in web development; 2) Its flexibility and stability make it outstanding in handling web forms, database operations and file processing; 3) PHP is constantly evolving and optimizing, suitable for beginners and experienced developers.


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

SAP NetWeaver Server Adapter for Eclipse
Integrate Eclipse with SAP NetWeaver application server.

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Atom editor mac version download
The most popular open source editor

Dreamweaver CS6
Visual web development tools

EditPlus Chinese cracked version
Small size, syntax highlighting, does not support code prompt function






