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 :

[Débutant] Prob de return dans un TRY/CATCH/FINALLY


Sujet :

Langage Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 18
    Points : 20
    Points
    20
    Par défaut [Débutant] Prob de return dans un TRY/CATCH/FINALLY
    Bon, en gros, je n'ai pas l'habitude d'utiliser des try/catch/finally. J'ai cependant pris la peine de me renseigner sur le sujet. Même après recherche, je ne trouve pas mon erreur :s. N'aurais je pas compris les finesses des expressions?
    Ne prend-t-il pas en compte mes assignations de variables? (autant dans le try que dans le catch)

    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
    25
    26
    public static RegistreUtilisateurs lireFichier(){
    		Fichier regUtilisateurs = new Fichier(NOM_FICHIER);
    		try {
    			regUtilisateurs.ouvrirEnLecture();
    			while( true ) { // on quitte cette répétitive lorsque la fin du fichier
    								 // est atteinte. Une "EOFException" est lancée.
    				RegistreUtilisateurs registre = (RegistreUtilisateurs) regUtilisateurs.lireObjet();
    				System.out.println( registre );
    			}
     
    		}
    		catch ( java.io.EOFException ex) { // fin du fichier rencontrée
    			System.out.println( "fin du fichier rencontrée." );
    		}
    		catch ( java.io.IOException ex) { // problème I/O (si le fichier n'existe pas)
    			System.out.println( "problème I/O (le fichier peut ne pas exister): \t" + ex );
    			RegistreUtilisateurs registre = new RegistreUtilisateurs();
    		}
    		catch ( Exception ex) { // autre type d'erreur
    			System.out.println( "erreur : \t" + ex );
    		}
    		finally { // quoi qu'il arrive, il doit essayer de fermer le fichier.
    			fermerFichier(regUtilisateurs);
    			return registre;
    		}
    	}
    Mon problème vient du fait qu'il me signale que ma variable 'registre' est inconnue :/.

    pgmTest.java:37: cannot find symbol
    symbol : variable registre
    location: class pgmTest
    return registre;

  2. #2
    Membre expérimenté Avatar de BainE
    Inscrit en
    Mai 2004
    Messages
    1 327
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 1 327
    Points : 1 544
    Points
    1 544
    Par défaut
    le probleme n'est pas try/catch.

    Une varible ne possede que la porté des accolades qui l'entourne, du coup ton registre est connu dans le catch et n'est plus connu juste apres la fin du catch.

    regarde la portée des variables si un truc t'echappes (c'est ptet une grosse boulette )
    "vaste programme"

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 94
    Points : 102
    Points
    102
    Par défaut
    Ton registre est crée dans le bloc try il n'est donc pas connu dans finally, il faut que tu déclares ton registre au dessus du try si tu veux que cela fonctionne.

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 18
    Points : 20
    Points
    20
    Par défaut
    Je dois donc créer mon objet RegistreUtilisateur avant toute instruction...



    Ok merci les gens! Je fais vraiment preuve de bétise de temps en temps. A penser trop, je ne vois pas ce qui est évident. (Je pensais que j'allais faire un doublon -_-)



    Merci pour la résolution du problème et pour les petits conseils ;-)

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

Discussions similaires

  1. Yield return dans un try; catch
    Par Seth77 dans le forum C#
    Réponses: 3
    Dernier message: 11/05/2012, 23h07
  2. Try Catch Finally et Return
    Par melleb dans le forum C#
    Réponses: 21
    Dernier message: 28/07/2011, 12h30
  3. Encapsulation d'un CREATE SCHEMA dans un TRY CATCH
    Par nivsql dans le forum Développement
    Réponses: 2
    Dernier message: 31/03/2010, 15h35
  4. Erreur, même dans un try-catch
    Par TheCool dans le forum C#
    Réponses: 3
    Dernier message: 06/03/2008, 19h26
  5. [Syntaxe] Un return dans un try... Comment faire ?
    Par chuky dans le forum Général Java
    Réponses: 13
    Dernier message: 14/01/2005, 10h33

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