Errors and Exceptions in PHP
Errors and exceptions are two completely different concepts
Errors
Error types
A total of 16
Values | Constant | Description | Remarks |
---|---|---|---|
1 | E_ERROR (integer) | Fatal runtime error. This type of error is generally an unrecoverable situation, such as a problem caused by memory allocation. The consequence is that the script terminates and does not continue to run. | |
2 | E_WARNING (integer) | Runtime warning (non-fatal error). Only a prompt message is given, but the script does not terminate. | |
4 | E_PARSE (integer) | Compile time syntax parsing error. Parsing errors are generated only by the parser. | |
8 | E_NOTICE (integer) | Runtime notification. Indicates that the script encounters a situation that may appear as an error, but there may also be similar notifications in scripts that can run normally. | |
16 | E_CORE_ERROR (integer) | A fatal error that occurred during PHP initialization startup. This error is similar to E_ERROR, but is generated by the PHP engine core. | since PHP 4 |
32 | E_CORE_WARNING (integer) | Warning (non-fatal error) occurred during PHP initialization startup. Similar to E_WARNING, but generated by the PHP engine core. | since PHP 4 |
64 | E_COMPILE_ERROR (integer) | Fatal compile time error. Similar to E_ERROR, but generated by the Zend script engine. | since PHP 4 |
128 | E_COMPILE_WARNING (integer) | Compile time warning (non-fatal error). Similar to E_WARNING, but generated by the Zend scripting engine. | since PHP 4 |
256 | E_USER_ERROR (integer) | User-generated error message. Similar to E_ERROR, but is generated by the user using the PHP function trigger_error() in the code. | since PHP 4 |
512 | E_USER_WARNING (integer) | User-generated warning message. Similar to E_WARNING, but is generated by the user using the PHP function trigger_error() in the code. | since PHP 4 |
1024 | E_USER_NOTICE (integer) | Notification information generated by the user. Similar to E_NOTICE, but is generated by the user using the PHP function trigger_error() in the code. | since PHP 4 |
2048 | E_STRICT (integer) | Enable PHP's suggestions for code modifications to ensure the best interoperability and forward compatibility of the code. | since PHP 5 |
4096 | E_RECOVERABLE_ERROR (integer) | A fatal error that can be caught. It indicates that a potentially dangerous error has occurred, but has not caused the PHP engine to become unstable. If the error is not caught by a user-defined handler (see set_error_handler()), it will become an E_ERROR and the script will terminate. | since PHP 5.2.0 |
8192 | E_DEPRECATED (integer) | Runtime notification. When enabled, a warning will be given about code that may not work properly in future versions. | since PHP 5.3.0 |
16384 | E_USER_DEPRECATED (integer) | User generated warning message. Similar to E_DEPRECATED, but is generated by the user using the PHP function trigger_error() in the code. | since PHP 5.3.0 |
30719 | E_ALL (integer) | E_STRICT all error and warning messages. | 30719 in PHP 5.3.x, 6143 in PHP 5.2.x, 2047 previously |
Error level
(1) Deprecated
Output<code>if (ereg('/llo/', 'hello world')) { echo 'yes2'; } else { echo 'no2'; } </code>
<code>Deprecated: Function ereg() is deprecated in /Users/weiheli/www/php/003.php on line 3 no </code>
<code>$arr = ['a'=>'aaa', 'b'=>'bbb']; echo $arr[a]; </code>
<code>Notice: Use of undefined constant a - assumed 'a' in /Users/weiheli/www/php/003.php on line 4 aaa </code>
<code>settype($var, 'abc'); echo $var; </code>
<code>Warning: settype(): Invalid type in /Users/weiheli/www/php/003.php on line 3 </code>
<code>// 调用未定义的函数 fn(12); </code>
<code>Fatal error: Call to undefined function fn() in /Users/weiheli/www/php/003.php on line 3 </code>
<code>echo 'hello world' </code>
ini_set
functionuser-thrown errors<code>Parse error: parse error, expecting `','' or `';'' in /Users/weiheli/www/php/003.php on line 3 </code>
logging
configuration in php.ini
<code>; 是否显示错误。解析错误始终都会显示 display_errors = On ; 显示哪些错误 ;error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT error_reporting = E_ALL </code>
<code>error_reporting() </code>
<code>trigger_error(string $error_msg [, int $error_type = E_USER_NOTICE ]) </code>
Exception
<code>是否记录错误日志 log_errors = On 错误日志最大字节数 log_errors_max_len = 1024 是否忽略重复错误 ignore_repeated_errors 是否忽略重复信息来源 ignore_repeated_source 保存到系统日志中 error_log = syslog </code>
As you can see from the above code, exceptions will not be automatically thrown in PHP. You must use
throw, which is different from Java
<code>error_log() openlog() syslog() closelog() </code>
throw
throwThe statements after will not be executed
<code>set_error_handler — 设置一个用户定义的错误处理函数 </code>
Customized exception handling
<code>try { $num = 1 / 0; } catch (Exception $e) { echo $e->getMessage(); } Warning: Division by zero in /Users/weiheli/www/php/003.php on line 4 </code>
Copyright statement: This article is an original article by the blogger, No reproduction is allowed without the permission of the blogger.
The above has introduced the errors and exceptions in PHP, including related content. I hope it will be helpful to friends who are interested in PHP tutorials.

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

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

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

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

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

Hot Topics



PHP 8.4 brings several new features, security improvements, and performance improvements with healthy amounts of feature deprecations and removals. This guide explains how to install PHP 8.4 or upgrade to PHP 8.4 on Ubuntu, Debian, or their derivati

If you are an experienced PHP developer, you might have the feeling that you’ve been there and done that already.You have developed a significant number of applications, debugged millions of lines of code, and tweaked a bunch of scripts to achieve op

Visual Studio Code, also known as VS Code, is a free source code editor — or integrated development environment (IDE) — available for all major operating systems. With a large collection of extensions for many programming languages, VS Code can be c

JWT is an open standard based on JSON, used to securely transmit information between parties, mainly for identity authentication and information exchange. 1. JWT consists of three parts: Header, Payload and Signature. 2. The working principle of JWT includes three steps: generating JWT, verifying JWT and parsing Payload. 3. When using JWT for authentication in PHP, JWT can be generated and verified, and user role and permission information can be included in advanced usage. 4. Common errors include signature verification failure, token expiration, and payload oversized. Debugging skills include using debugging tools and logging. 5. Performance optimization and best practices include using appropriate signature algorithms, setting validity periods reasonably,

This tutorial demonstrates how to efficiently process XML documents using PHP. XML (eXtensible Markup Language) is a versatile text-based markup language designed for both human readability and machine parsing. It's commonly used for data storage an

A string is a sequence of characters, including letters, numbers, and symbols. This tutorial will learn how to calculate the number of vowels in a given string in PHP using different methods. The vowels in English are a, e, i, o, u, and they can be uppercase or lowercase. What is a vowel? Vowels are alphabetic characters that represent a specific pronunciation. There are five vowels in English, including uppercase and lowercase: a, e, i, o, u Example 1 Input: String = "Tutorialspoint" Output: 6 explain The vowels in the string "Tutorialspoint" are u, o, i, a, o, i. There are 6 yuan in total

Static binding (static::) implements late static binding (LSB) in PHP, allowing calling classes to be referenced in static contexts rather than defining classes. 1) The parsing process is performed at runtime, 2) Look up the call class in the inheritance relationship, 3) It may bring performance overhead.

What are the magic methods of PHP? PHP's magic methods include: 1.\_\_construct, used to initialize objects; 2.\_\_destruct, used to clean up resources; 3.\_\_call, handle non-existent method calls; 4.\_\_get, implement dynamic attribute access; 5.\_\_set, implement dynamic attribute settings. These methods are automatically called in certain situations, improving code flexibility and efficiency.
