IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

comprendre l'objet de type Exception [PHP 5.0]


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de grinder59
    Inscrit en
    Septembre 2005
    Messages
    710
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 710
    Par défaut comprendre l'objet de type Exception
    Salut !

    J'ai récupéré sur Internet une classe qui permet d'organiser la gestion des objets MySql utilisés dans mon application. Toutefois, j'essaie de comprendre cette classe mais il y a un truc qui bloque :

    voici un bout de la classe qui permet de gérer les exceptions :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    class MySQLExeption extends Exception {
    	public function __construct($Msg) {
    		parent :: __construct('<pre>'.$Msg.'</pre>');
    	}
    Et voici un bout de la classe qui permet de gérer les exécutions sql :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    class Mysql{
     
    private ... ;
     
    	public function ExecuteSQL($Requete){
     
    		if (!($Ressource = mysql_query($Requete, $this->Lien))) throw new MySQLExeption('1 - Erreur SQL : ');
     
    		if (!$Ressource and $this->Debogue) throw new MySQLExeption('2 - Erreur SQL : ');
     
    		$this->NbRequetes++;
    		$NbAffectee = mysql_affected_rows();
    		return $NbAffectee;      
    	}
    J'ai une requête foireuse (je mets à jour une colonne dont le nom n'existe pas).

    Alors que je tente d'exécuter la requête via la méthode ExecuteSQL, j'obtiens le message suivant :

    Fatal error: Uncaught exception 'MySQLExeption' with message '
    1 - Erreur SQL :
    ' in /var/www/mc/classes/Tools/Mysql.php:122 Stack trace: #0 /var/www/mc/action.php(83): Mysql->ExecuteSQL('???UPDATE ????M...') #1 /var/www/mc/index.php(54): include('/var/www/mc/act...') #2 {main} thrown in /var/www/mc/classes/Tools/Mysql.php on line 122
    Ce que je ne comprends pas est pourquoi le message d'erreur s'affiche-t-il alors que dans la méthode ExecuteSQL si ma requête est foireuse, je lance une exception, mais à aucun moment je ne fais d'affichage ?

    Merci de votre aide !

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    pourquoi t'utilises pas PDO ?

  3. #3
    Membre éclairé Avatar de grinder59
    Inscrit en
    Septembre 2005
    Messages
    710
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 710
    Par défaut
    heu, parce que je ne sais pas ce que c'est...

  4. #4
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920

  5. #5
    Membre éclairé Avatar de grinder59
    Inscrit en
    Septembre 2005
    Messages
    710
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 710
    Par défaut
    ok, je vais aller regarder tout cela... Merci !

    Néanmoins pourrais-tu m'expliquer pourquoi le message d'erreur d'affiche alors qu'à aucun moment je ne fait d'echo ou autre affichage ?

  6. #6
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    parce que quand une exception est lancée, ça fait un Fatal Error, si tu veux contrôler les exceptions il faut faire un try .. catch

    http://php.net/manual/fr/language.exceptions.php

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Debutant][Conception] visibilité des objets de type conteneur
    Par thebloodyman dans le forum Général Java
    Réponses: 10
    Dernier message: 04/01/2006, 12h44
  2. Réponses: 3
    Dernier message: 28/10/2005, 01h12
  3. Tableau d'objets de type différents
    Par Hell dans le forum C++
    Réponses: 9
    Dernier message: 11/01/2005, 22h57
  4. [Sérialisation] d'objets de types différents
    Par Amnesiak dans le forum Général Java
    Réponses: 3
    Dernier message: 08/12/2004, 22h28
  5. DB objet sous types heritage
    Par smex dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 15/06/2004, 21h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo