If you are a PHP veteran, of course you know what happens when a PHP script fails. At this point the PHP parser will give an error message on the screen, such as Fatal error: Call to undefined function on line 19 --, so the program terminates here. This information will scare the customer, who may immediately call you for a consultation.
Fortunately, there is a solution. PHP has built-in tools that allow developers to catch script errors and then forward them to a custom error handler. At this point, the processor can be programmed to display more specific information about the error. (Recommended learning: PHP programming from entry to proficiency)
You can also write errors to files or databases to take remedial measures. It is sometimes possible to program the processor to ignore error messages.
In this article, I will explain how to use PHP's error handling API to build a user-defined error handler, and explain how to display and manage script error information in a simple and friendly way.
Error Types and Reporting Levels
Let’s start with the basics. PHP has three most basic error types, from low-level to high-level: attention, warning and error (or fatal error). Normally, cautions and warnings do not terminate the program; but fatal errors are dangerous failures (for example, calling an undefined function or referencing a non-existent object) that will cause the program to interrupt. These errors may occur during startup, parsing, compilation, or runtime.
Keywords such as E_NOTICE, E_ERROR, etc. are used to indicate different types and levels of errors. A detailed list of them can be found in the PHP manual.
Error display in the script stage is controlled by the error_reporting() function. This function sets different parameters for different error levels. Table A shows a script that uses this function to report warnings and fatal errors.
Table A
<?php // display warnings and errors error_reporting(E_WARNING | E_ERROR); // this will generate a notice, which will never be displayed echo $undefinedVar; // this will generate a fatal error, which will be displayed callUndefFunc(); ?>
Comparing the code in Table B with the above, it is found that error information and even fatal information are hidden in Listing B, so that the error information will not be displayed.
Table B
<?php // turn off error display // no errors will be displayed error_reporting(0); // this will generate a notice echo $undefinedVar; // this will generate a fatal error callUndefFunc(); ?>
The code in Table C displays all error messages and even simple precautions:
Table C
<?php // all errors will be displayed error_reporting(E_ALL); // this will generate a notice echo $undefinedVar; // this will generate a fatal error callUndefFunc(); ?>
Like the above 3 As shown in the example, the error_reporting() function is very important in controlling what is displayed on the screen when an error occurs. The key word here is displayed, which means that the error is not displayed rather than that the error does not occur. Therefore, when a fatal error occurs (such as an incorrect function call), the program is terminated; however, no message is displayed to the user at this time.
The above is the detailed content of php custom error handler. For more information, please follow other related articles on the PHP Chinese website!

The article compares ACID and BASE database models, detailing their characteristics and appropriate use cases. ACID prioritizes data integrity and consistency, suitable for financial and e-commerce applications, while BASE focuses on availability and

The article discusses securing PHP file uploads to prevent vulnerabilities like code injection. It focuses on file type validation, secure storage, and error handling to enhance application security.

Article discusses best practices for PHP input validation to enhance security, focusing on techniques like using built-in functions, whitelist approach, and server-side validation.

The article discusses strategies for implementing API rate limiting in PHP, including algorithms like Token Bucket and Leaky Bucket, and using libraries like symfony/rate-limiter. It also covers monitoring, dynamically adjusting rate limits, and hand

The article discusses the benefits of using password_hash and password_verify in PHP for securing passwords. The main argument is that these functions enhance password protection through automatic salt generation, strong hashing algorithms, and secur

The article discusses OWASP Top 10 vulnerabilities in PHP and mitigation strategies. Key issues include injection, broken authentication, and XSS, with recommended tools for monitoring and securing PHP applications.

The article discusses strategies to prevent XSS attacks in PHP, focusing on input sanitization, output encoding, and using security-enhancing libraries and frameworks.

The article discusses the use of interfaces and abstract classes in PHP, focusing on when to use each. Interfaces define a contract without implementation, suitable for unrelated classes and multiple inheritance. Abstract classes provide common funct


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

Notepad++7.3.1
Easy-to-use and free code editor

SecLists
SecLists is the ultimate security tester's companion. It is a collection of various types of lists that are frequently used during security assessments, all in one place. SecLists helps make security testing more efficient and productive by conveniently providing all the lists a security tester might need. List types include usernames, passwords, URLs, fuzzing payloads, sensitive data patterns, web shells, and more. The tester can simply pull this repository onto a new test machine and he will have access to every type of list he needs.

PhpStorm Mac version
The latest (2018.2.1) professional PHP integrated development tool

Atom editor mac version download
The most popular open source editor

ZendStudio 13.5.1 Mac
Powerful PHP integrated development environment