Maison  >  Article  >  développement back-end  >  Gestion des exceptions PHP et partage des méthodes de gestion des erreurs

Gestion des exceptions PHP et partage des méthodes de gestion des erreurs

小云云
小云云original
2018-03-07 09:47:222537parcourir

Exceptions en PHP : Il s'agit d'une interruption de la logique et des processus métier. Erreurs en PHP : ses propres problèmes, syntaxe illégale ou problèmes environnementaux, le compilateur ne peut pas passer le contrôle et ne peut pas s'exécuter. et les méthodes de gestion des erreurs, j'espère que cela pourra aider tout le monde.

Comment utiliser le mécanisme de gestion des exceptions

La différence entre diviser par zéro les exceptions en php et 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;

Exécution des résultats


implémentation Java

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("异常被捕获");
        }
        }
    }
}

En PHP, cela est considéré comme une erreur et l'erreur est déclenchée directement sans lancer automatiquement d'exception. PHP ne peut intercepter les exceptions qu'après l'avoir activement lancée<.>

En Java, la division par zéro est considérée comme une ArithmeticException, qui sera capturée et l'exception sera gérée


Pour faire simple, PHP traite toutes les situations anormales comme des erreurs, utilisez if else pour intercepter les exceptions. Les classes d'exceptions intégrées à PHP incluent pdoexception, exception de réflexion


Les exceptions en Java sont la seule méthode de rapport d'erreurs


Que faire avec les exceptions PHP Utilisez


1 pour faire une prédiction pessimiste du programme


2 Besoins du programme et préoccupations commerciales


Téléchargez des fichiers et enregistrez-les dans le base de données pour assurer la cohérence des données métiers


Deux méthodes de capture des exceptions


Lorsque les premières anomalies surviennent, elles capturent immédiatement


La seconde est la capture de concentration décentralisée et anormale

<?php 
try{
//可能出错的代码段
if(文件上传不成功)throw(上传异常)
if(插入数据库不成功)throw(数据库操作异常)
}catch(异常){
必须的补救措施,如删除文件,删除数据库插入记录
}
}
3 niveaux de langage >

1.6.2 Comment voir les exceptions PHP
<?php
上传{
if(文件上传不成功)throw (上传异常)
if(插入数据不成功)throw (数据库操作异常)
//其他代码
try{
上传,其他;}
catch(上传异常){
必须的补救措施,删除文件,删除数据插入记录
}catch(其他异常){
记录log
}

Le mécanisme d'exception de PHP est insuffisant. se concentrer sur les exceptions qui se sont produites, tandis que Java se concentre sur la capture des exceptions et la correction ultérieure

La meilleure façon est de lancer activement des exceptions en conjonction avec la gestion des erreurs en php


1.6.3 Niveau d'erreur en PHP

Erreur PHP : entraînera un fonctionnement anormal du script

Les erreurs sont des catégories suivantes :


obsolète Le erreurs de niveau le plus bas, non recommandées, non recommandées, causées par des fonctions ou une syntaxe obsolètes


avis Il y a un endroit inapproprié dans la syntaxe pour utiliser une variable mais il n'est pas défini L'index des données est un caractère. sans guillemets. PHP le traitera comme une constante. Vérifiez la table des constantes


et elle est introuvable, puis considérée comme un loup


Un avertissement est. une erreur de niveau relativement élevé. Des situations inappropriées se produisent dans la syntaxe, comme une incompatibilité de paramètres de fonction. Ce type d'erreur doit obtenir le résultat attendu


L'erreur fatale de Fetal Error conduit directement à la fin du PHP. Ce dernier code ne fonctionne pas


Erreur d'analyse de syntaxe d'erreur de Prase Affichage de l'erreur, paramètre du fichier php.ini La qualité ou l'environnement n'est pas bon Pour contrôler l'heure, utilisez error_reporting(0) ou ajoutez @.


devant la fonction. 1.6.4 Mécanisme de gestion des erreurs en PHP


Il existe un mécanisme de gestion des erreurs en php qui peut être utilisé set_error_handler prend en charge la gestion des erreurs PHP.


set_error_handler(error_function,error_types)


error_function spécifie la fonction à exécuter lorsqu'une erreur se produit, doit être

             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的例子

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn