essayer{
echo 'essayez <br/>';
$mysql = new mysqli('localhost', 'root', '111', 'test');
} attraper (Exception $e){
echo 'attraper <br/>';
echo $e->getMessage();
Le code est comme ci-dessus, une exception s'est produite
Résultat :
essayez
Avertissement : mysqli::mysqli() : (28000/1045) : Accès refusé pour l'utilisateur 'root'@'localhost' (en utilisant le mot de passe : OUI) dans /home/test/its2/webroot/public/unserialize.php à la ligne 31
Pourquoi le catch de sortie n'est-il pas exécuté ?
Vous devez dire à mysqli de lancer une exception au lieu d'un avertissement.
Visitez à nouveau, les résultats sont les suivants :
essayez
catch
Accès refusé pour l'utilisateur 'root'@'localhost' (en utilisant le mot de passe : OUI)
Veuillez distinguer clairement la différence entre l'avertissement et l'exception.
Les avertissements et les erreurs en PHP sont des problèmes que PHP rappelle aux développeurs dans le programme. Ce problème ne doit pas nécessairement être traité.
.L'exception est un problème qui est personnalisé et doit en principe être traité. une exception correspondante pour Exception Traité
Regardez ceci http://www.cnblogs.com/water0...