Home > Article > Backend Development > PHP exception handling and error handling method sharing
Exceptions in PHP: It is an interruption of logic and business processes. Errors in PHP: its own problems, illegal syntax or environmental problems, the compiler cannot pass the check and cannot run. This article mainly shares with you PHP exception handling and error handling methods, I hope it can help everyone.
How to use the exception handling mechanism
The difference between division-by-zero exceptions in PHP and Java
<?php /** * Created by PhpStorm. * User: wangkai * Date: 2018/3/6 * Time: 上午8:53 */ $a=null; try{ $a=5/0; echo $a; }catch (exception $e){ $e->getMessage(); $a=-1; } echo $a;
Running results
public class ExcepetionTry{ public static void tp() throws ArithmeticException{ int a; a=5/0; system.out.println("运算结果:"+a); } public static void main(String[] args){ int a; try{ a=5/0; System.out.println("运算结果"+a); }catch(ArithmeticException e){ e.printStackTrace(); }finally{ a=-1; System.out.println("运算结果"+a); } try{ ExceptionTry.tp(); }catch(Exception e){ System.out.println("异常被捕获"); } } } }In PHP, this is considered an error. The error is triggered directly and the exception will not be automatically thrown. PHP can only catch the exception after actively throwing it In java, division by zero is considered an ArithmeticException, which will be captured and the exception will be handled
<?php try{ //可能出错的代码段 if(文件上传不成功)throw(上传异常) if(插入数据库不成功)throw(数据库操作异常) }catch(异常){ 必须的补救措施,如删除文件,删除数据库插入记录 } }The second is to scatter exceptions and catch them in a centralized manner
<?php 上传{ if(文件上传不成功)throw (上传异常) if(插入数据不成功)throw (数据库操作异常) //其他代码 try{ 上传,其他;} catch(上传异常){ 必须的补救措施,删除文件,删除数据插入记录 }catch(其他异常){ 记录log }
1.6 .2 How to see PHP exceptions
PHP’s exception mechanism is insufficient. PHP needs to focus on what exceptions have occurred, while Java focuses on exception capture and subsequent remediation
It’s best The best way is to actively throw exceptions in conjunction with error handling in php
PHP errors: situations that cause the script to run abnormally
error The following categories:
DEPRECATED minimum error, not recommended, not recommended, outdated functions or syntax of
# NOTICE There is an inappropriate place in using a variable but it is not defined. The data index is a character without quotation marks. PHP will treat it as a constant. Check the constant table
If you can’t find it, it will be treated as a wolf
Boning is a relatively high level of errors, and there are inappropriate situations in the grammar, such as the function parameters do not match. This error can get the expected result
Fetal error. Directly leads to the termination of the php process, and the following code will not be executed. Define
error_reporting=E_ALL|E_STRICT
’’'''' ’ ’s display_error's=On
set_error_handler(error_function,error_types)
error_function specifies the functions to be run when an error occurs, must be
error_types 规定在哪个错误报告级别会显示用户定义的错误,可选
<?php /** * Created by PhpStorm. * User: wangkai * Date: 2018/3/6 * Time: 上午10:03 */ // 用户定义的错误处理函数 function myErrorHandler($errno, $errstr, $errfile, $errline) { echo "<b>Custom error:</b> [$errno] $errstr<br>"; echo " Error on line $errline in $errfile<br>"; } // 设置用户定义的错误处理函数 set_error_handler("myErrorHandler"); $a=array('o'=>2,4,5,6); echo $a[o]; ?>
主动抛出异常实现
function customError($errno,$errstr,$errfile,$errline){ throw new Exception($level.$errstr); } set_error_handler("customeError"); try{ $a=5/0; }catch(Exception $e){ echo "错误信息:".$e->getMessage(); }
相关推荐:
The above is the detailed content of PHP exception handling and error handling method sharing. For more information, please follow other related articles on the PHP Chinese website!