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 :

Intercepter les erreurs de "socket_connect"


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2006
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 113
    Points : 45
    Points
    45
    Par défaut Intercepter les erreurs de "socket_connect"
    Salut, Ma question est simple j'ai récemment fais un tutorial sur developpez.Com pour utiliser les sockets en php, mon problème intervient lorsque je veut catcher, une connexion impossible car il n'y a pas d'utilisateur en face. Au lieu de ça, j'ai droit à une vieille erreur warning très moche que je veux remplacer par mon message à moi!!


    en java ca ferait

    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    try
    {
      $sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP) or die('Création de socket refusée');
     
     
    //Connexion au serveur
    $result = socket_connect($sock,$address,$port);
     
    }
    catch(Exception e)
    {
     //message d'erreurs + actions evenuelles
    }


    Mon problème est que le langage php ne les interceptent pas!!!
    une idée?
    Merci

  2. #2
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 393
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 393
    Points : 15 754
    Points
    15 754
    Par défaut
    avec le code suivant, tu peux lancer une exception quand une erreur PHP est lancée et donc tu pourras l'intercepter :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    function traitementErreur($code, $message, $fichier, $ligne, $contexte)
    {
        if (error_reporting() & $code) {
            throw new Exception($message, $code);
        }
    }
     
    set_error_handler('traitementErreur');

  3. #3
    Membre expérimenté

    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 249
    Points : 1 565
    Points
    1 565
    Par défaut
    Sans passer par un gestionnaire d'erreur dédié (ce qui en général "casse" un peu la lisibilité du programme, surtout si on commence a mettre beaucoup de choses dedans ^^), on peut utiliser @

    @ devant une fonction DESACTIVE l'affichage d'erreur de la fonction
    De plus, toutes les fonctions qui peuvent mal se terminer renvoient une valeur spéciale en cas d'erreur... mais ca dépend des fonctions. A toi de regarder dans la doc donc. Ca peut etre FALSE, NULL, -1, ou tout autre valeur

    Tu pourrais donc faire un traitement LOCAL comme cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $retour=@fonction_qui_peut_echouer(...);
    if ($retour === valeur_renvoyee_en_cas_d_echec) {
      throw...;
    }

Discussions similaires

  1. Code Igniter Intercepter les erreurs lors des requêtes vers bases de données
    Par ilalaina dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 06/10/2009, 07h52
  2. intercepter les erreurs
    Par agrotic dans le forum ASP
    Réponses: 2
    Dernier message: 15/02/2008, 14h03
  3. Intercepter les erreurs d'une commande ?
    Par Olivier Regnier dans le forum Linux
    Réponses: 2
    Dernier message: 01/12/2006, 12h28

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