recherche

Maison  >  Questions et réponses  >  le corps du texte

gestion des exceptions php

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

大家讲道理大家讲道理2784 Il y a quelques jours474

répondre à tous(3)je répondrai

  • PHPz

    PHPz2017-05-16 13:04:45

    Vous devez dire à mysqli de lancer une exception au lieu d'un avertissement.

    mysqli_report(MYSQLI_REPORT_STRICT); // 加上这一行!!!
    
    try{
        echo 'try <br/>';
        $mysql = new mysqli('localhost', 'root', '111', 'test');
    } catch (Exception $e){
        echo 'catch <br/>';
        echo $e->getMessage();
    }

    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)

    répondre
    0
  • 阿神

    阿神2017-05-16 13:04:45

    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é

    .

    répondre
    0
  • 黄舟

    黄舟2017-05-16 13:04:45

    Regardez ceci http://www.cnblogs.com/water0...

    répondre
    0
  • Annulerrépondre