Home  >  Article  >  Backend Development  >  PHP exception handling and error handling method sharing

PHP exception handling and error handling method sharing

小云云
小云云Original
2018-03-07 09:47:222545browse

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


##java implementation

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


To put it simply, PHP treats all abnormal situations as errors, and uses if Else captures exceptions. PHP's built-in exception classes include pdoexception, reflection exception


Exceptions in java are the only error reporting methods


How to use PHP exceptions


                                                                                                                                                                                                     . Focus on business


Uploading files and saving them to the database to ensure the consistency of business data


Two exception capture methods


Chapter Catch an exception immediately when it occurs


<?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
}

3 Language level robustness


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

1.6.3 Error levels 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

##’’  out out out out through out off out out off out out through out right out through out right through out through over over over over‐‐'‐ through'‐‐‐‐‐‐'' websites to be to go to Error_reporting(0) to be used when the code quality or environment is uncontrollable Or add @


1.6.4 Error handling mechanism in PHP in front of the function.


                                                                                                                                                                                                            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(&#39;o&#39;=>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();
}

相关推荐:

什么是PHP异常处理

PHP异常处理器的自定义

使用php异常处理类Exception的例子

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!

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