Précédent   Forum des professionnels en informatique > PHP > Langage
Langage Forum sur le langage PHP, la POO, les conventions, la sécurité, etc. Avant de poster : FAQ Langage, toutes les FAQ PHP, cours langage et sources PHP
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 06/12/2011, 18h31   #1
Membre habitué
 
Avatar de a028762
 
Inscription : décembre 2003
Messages : 222
Détails du profil
Informations forums :
Inscription : décembre 2003
Messages : 222
Points : 108
Points : 108
Par défaut Gestion d'erreurs dans une classe

Bonjour, je souhaite ajouter à mes classes persistantes (Mysql)
une gestion d'erreur un peu construite
sans la gérer à l'extérieur de ces classes ...
Apparamment , la déclaration d'un handler hors d'une méthode ne passe pas ... Cela signifie-t-il que je suis condamné à faire cette déclaration à chaque fonction ?
Merci de votre écoute
a028762 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/12/2011, 20h16   #2
Membre confirmé
 
Homme Arnaud
Inscription : décembre 2004
Messages : 167
Détails du profil
Informations personnelles :
Nom : Homme Arnaud
Âge : 40
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : décembre 2004
Messages : 167
Points : 238
Points : 238
Bonjour,

Oui, à chaque fonction.
Exemple :
Code :
1
2
3
4
5
6
7
8
$this->result = @mysql_query($query);
if (!$this->result) {
  $this->show_error(mysql_error(),$query,$display_error);
  @mysql_free_result($this->result);
  return false;			
} else{
  ... tu envoies ton résultat
}
et
Code :
1
2
3
4
5
private function show_error($error,$query='',$display_error) {
  if($display_error){
    echo "<p><strong>Error:</strong> " . $error . " : -->" . $query . "</p>";
  }
}
Ce n'est qu'un exemple, bien sûr !

Bon courage !
__________________
NginX, SphinxSearch Addict !!
lenono est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/12/2011, 21h02   #3
Modérateur
 
Inscription : septembre 2010
Messages : 7 219
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 219
Points : 8 598
Points : 8 598
Citation:
Envoyé par lenono Voir le message
Bonjour,

Oui, à chaque fonction.
Exemple :
Code :
1
2
3
4
5
6
7
8
$this->result = @mysql_query($query);
if (!$this->result) {
  $this->show_error(mysql_error(),$query,$display_error);
  @mysql_free_result($this->result);
  return false;			
} else{
  ... tu envoies ton résultat
}
et
Code :
1
2
3
4
5
private function show_error($error,$query='',$display_error) {
  if($display_error){
    echo "<p><strong>Error:</strong> " . $error . " : -->" . $query . "</p>";
  }
}
Ce n'est qu'un exemple, bien sûr !

Bon courage !
beurk c'est quoi c'est @ partout ? ..., de plus ça sert a rien de faire un else après un return, et pourquoi ne pas utilise les exceptions ?
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/12/2011, 15h46   #4
Membre confirmé
 
Homme Arnaud
Inscription : décembre 2004
Messages : 167
Détails du profil
Informations personnelles :
Nom : Homme Arnaud
Âge : 40
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : décembre 2004
Messages : 167
Points : 238
Points : 238
C'est un exemple stealth35 pour bien comprendre.

Ceci dit ma pédagogie ne reflète en rien ma méthode de travail, ni le "best practice" et me disant que ce forum est lu par des débutants (comme nous l'avons tous été au moins un jour), cela permet une approche progressive de la gestion des erreurs et donc des exceptions.
__________________
NginX, SphinxSearch Addict !!
lenono est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 10/12/2011, 11h50   #5
Membre habitué
 
Avatar de a028762
 
Inscription : décembre 2003
Messages : 222
Détails du profil
Informations forums :
Inscription : décembre 2003
Messages : 222
Points : 108
Points : 108
Bon, c'est ce que je fais déjà , rarement d'ailleurs avec les @
L'idée est de construire un handleur d'erreur qui dans certains cas enverrait un mail à l'exploitant du site, ou de stocker ces erreurs (celles qui ne sont pas déjà dans les LOG APache) dans un fichier ...
Une règle que j'applique est de ne pas masquer des messages d'erreur si on n'a rien à offrir de mieux à l'utilisateur ....
rien n'est plus troublant de ne rien afficher ...
a028762 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 21h59.


 
 
 
 
Partenaires

Hébergement Web