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
La seconde est la capture de concentration décentralisée et anormale
<?php try{ //可能出错的代码段 if(文件上传不成功)throw(上传异常) if(插入数据库不成功)throw(数据库操作异常) }catch(异常){ 必须的补救措施,如删除文件,删除数据库插入记录 } }
<?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('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(); }
相关推荐:
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!