search
HomeBackend DevelopmentPHP Problemphp custom error handler

php custom error handler

Sep 11, 2019 pm 02:07 PM
php

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.

php custom error handler

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!

Statement
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
ACID vs BASE Database: Differences and when to use each.ACID vs BASE Database: Differences and when to use each.Mar 26, 2025 pm 04:19 PM

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

PHP Secure File Uploads: Preventing file-related vulnerabilities.PHP Secure File Uploads: Preventing file-related vulnerabilities.Mar 26, 2025 pm 04:18 PM

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.

PHP Input Validation: Best practices.PHP Input Validation: Best practices.Mar 26, 2025 pm 04:17 PM

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.

PHP API Rate Limiting: Implementation strategies.PHP API Rate Limiting: Implementation strategies.Mar 26, 2025 pm 04:16 PM

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

PHP Password Hashing: password_hash and password_verify.PHP Password Hashing: password_hash and password_verify.Mar 26, 2025 pm 04:15 PM

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

OWASP Top 10 PHP: Describe and mitigate common vulnerabilities.OWASP Top 10 PHP: Describe and mitigate common vulnerabilities.Mar 26, 2025 pm 04:13 PM

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.

PHP XSS Prevention: How to protect against XSS.PHP XSS Prevention: How to protect against XSS.Mar 26, 2025 pm 04:12 PM

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

PHP Interface vs Abstract Class: When to use each.PHP Interface vs Abstract Class: When to use each.Mar 26, 2025 pm 04:11 PM

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

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SecLists

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

PhpStorm Mac version

The latest (2018.2.1) professional PHP integrated development tool

Atom editor mac version download

Atom editor mac version download

The most popular open source editor

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Powerful PHP integrated development environment