Partage
  • Partager sur Facebook
  • Partager sur Twitter

Java & Exceptions

Sujet résolu
    8 novembre 2008 à 22:45:34

    Bonjour,

    Je souhaiterais savoir s'il existe un moyen simple de récupérer dans le catch, une variable qui a été initialisé DANS le try (exemple ici, le String chemin).

    public class Main {
    
    	public static void main(String[] args) {
                try {
        		String chemin = "/Un/chemin/vers/une/classe/qui/n'existe/pas";
    		Class.forName(chemin);
    		System.out.println("fin du programme");
    			
    	    } catch (ClassNotFoundException e) {
    		System.out.println("(string) chemin = " + chemin);
    	    }
    	}
    }
    


    Est ce possible sans passer par un attribut ? (Sachant que je ne veux pas non plus déclarer la variable en dehors d'un try ).
    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      8 novembre 2008 à 23:24:54

      Tu peux pas, le try à son propre scope.
      Si tu veux vraiment faire une variable locale à ton try-catch (drôle d'idée mais bon...), tu peux creer un scope artificiel autour:
      public void myMethod() {
          {
               String tmp = new String();
               try {
                    ...
               } catch (Exception e) {
                    ...
               }
           }
           //tmp est ici éligible pour le garbage collector.
          ...
      }
      

      Mais devoir faire ce genre de chose vient soit d'une faute de conception soit d'une idée bizarre.
      • Partager sur Facebook
      • Partager sur Twitter
        8 novembre 2008 à 23:41:17

        Merci pour cette réponse. Concernant la question, c'était plutôt par curiosité, ayant essayé de faire appel à une variable dans un catch lors de qql tests =)
        • Partager sur Facebook
        • Partager sur Twitter

        Java & Exceptions

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown