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 Java Discussion :

Exception en mode restauration


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 5
    Par défaut Exception en mode restauration
    Bonjour,

    J'aurais souhaité savoir si Java permet de gérer les exceptions en mode "restauration", c'est à dire que le bloc catch corrige le problème et reprend le bloc try à l'endroit ayant levé l'exception.

    Mon cas est très simple: il s'agit de gérer les erreurs de connexion à un serveur. L'objectif est que le bloc catch se reconnecte et relance le code (avec un système pour limiter le nombre de relances bien sûr).

    En pratique, il ne me manque que l'instruction à ajouter en fin de bloc catch pour revenir à l'endroit ayant levé l'exception (une sorte de GOTO).

    Hélas, je n'ai pas l'impression que cette instruction existe en Java. Si j'ai bien compris cet article:
    http://bruce-eckel.developpez.com/li...chap=11&page=0
    il faudrait que j'encapsule chaque instruction effectuant une connexion au serveur dans une boucle while comprenant un try/catch. Vu le nombre d'instructions se connectant au serveur dans mon code, c'est ingérable

    Est-ce que j'ai bien compris? Ou existe-t-il une solution pour gérer mon pb?

  2. #2
    Membre émérite
    Profil pro
    Développeur Back-End
    Inscrit en
    Avril 2003
    Messages
    782
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Back-End

    Informations forums :
    Inscription : Avril 2003
    Messages : 782
    Par défaut
    pourquoi pas quelque chose comme un appel à lui même ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
        public void connect() {
            try {
                //code de la connection
            } catch (Exception e) {
                //nouvelle tentative 
                connect();
            }
        }

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 5
    Par défaut
    J'y ai pensé, mais il faut que je sois sûr que les instructions déjà effectuées avec succès ne soient pas réexecutées (ou que cela ne pose pas de pb). Autant dire qu'il faut que je réorganise mon code de fond en comble...

  4. #4
    Membre émérite
    Profil pro
    Développeur Back-End
    Inscrit en
    Avril 2003
    Messages
    782
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Back-End

    Informations forums :
    Inscription : Avril 2003
    Messages : 782
    Par défaut
    il suffit d'extraire le code ne concernant que la connexion dans une autre méthode.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 5
    Par défaut
    Citation Envoyé par fnobb
    il suffit d'extraire le code ne concernant que la connexion dans une autre méthode.
    Je pense que je vais m'orienter vers une solution de ce type.

    Est-ce que ca veut bien dire qu'en effet, je ne peux pas faire de restauration en Java? Un truc du genre:
    try { ... }
    catch (connectionException e) {
    // restauration de l'exception
    // instruction indiquant qu'il faut retourner à l'instruction ayant généré l'exception
    }

  6. #6
    Membre émérite
    Profil pro
    Développeur Back-End
    Inscrit en
    Avril 2003
    Messages
    782
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Back-End

    Informations forums :
    Inscription : Avril 2003
    Messages : 782
    Par défaut
    il existe une notion de goto en java (mais très peut utilisée).
    un exemple

  7. #7
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 94
    Par défaut
    Ce n'est à ma connaissance pas possible il faut faire un bloc try sur chaque instruction de ta fonction susceptible de générer une exception

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    public void connect(){
        try{
            opération1;
        }
        catch(Exception ex){
            //résolution des problèmes
        }
        opération2;
        try{
            opération3;
        }
        catch(Exception ex){
            //résolution des problèmes
        }
        try{
             opération4;
        }
        catch(Exception ex){
            //résolution des problèmes
        }
        opération5;
        opération6;
    }

Discussions similaires

  1. [SQL Server 2005] base en mode Restauration
    Par Herlece dans le forum Développement
    Réponses: 15
    Dernier message: 12/05/2011, 21h20
  2. Réponses: 3
    Dernier message: 24/11/2008, 14h35
  3. Réponses: 2
    Dernier message: 10/11/2008, 09h05
  4. Recupérer exception non gérée en mode console
    Par banjo12 dans le forum VB.NET
    Réponses: 0
    Dernier message: 18/07/2008, 16h30
  5. Unhandled Win32 Exception en mode Release
    Par HarKoT dans le forum C++
    Réponses: 5
    Dernier message: 05/12/2007, 15h08

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