7
votes

Comment accéder à une variable à l'extérieur d'un bloc d'attraction

J'essaie de Renvoyer une valeur booléenne de ma fonction ayant TRY-CATCH bloc ,

mais le problème est que je ne peux pas retourner une valeur.

Je sais que la variable à l'intérieur d'un bloc d'essais ne peut pas être accessible à l'extérieur, mais je veux toujours. xxx

C'est un problème super grave pour moi dans mon projet. Je suis Googled et m'a essayé, mais rien n'a résolu.

J'espère que maintenant, je trouverai une certaine solution. Je sais que cela a une erreur disant déclaration de retour manquant mais je veux que le programme fonctionne exactement comme celui-ci.

maintenant la raison Je suis stricte de ce < / p>

dans mon fichier jar, je dois accéder aux fichiers texte pour trouver des valeurs 1 ou 0 si "1" s'accepte d'autres désactivé.

C'est pourquoi j'utilise booléen.


0 commentaires

5 Réponses :


11
votes

Déclarez simplement le booléen en dehors de l'essai / prise et définissez la valeur dans le bloc d'essai

public boolean myMethod() {
    boolean success = false;
    try {
        doSomethingThatMightThrowAnException();
        success = true;
    }
    catch ( Exception e ) {
        e.printStackTrace();
    }
    return success;
}


0 commentaires

7
votes

Dans votre méthode, si une exception est lancée, il n'y a pas de déclaration de retour. Placez une instruction dans le gestionnaire d'exception, dans un bloc enfin ou après le gestionnaire d'exception.


0 commentaires

3
votes

L'erreur est que vous ne retournez rien dans le cas où une exception est lancée.

Essayez ce qui suit: P>

public boolean checkStatus(){
   boolean result = true;  // default value.
   try{

        InputStream fstream = MyRegDb.class.getClassLoader().getResourceAsStream("textfile.txt");
        // Use DataInputStream to read binary NOT text.
        BufferedReader br = new BufferedReader(new InputStreamReader(fstream));
        String strLine;

        //Read File Line By Line
        strLine = br.readLine();
        // Print the content on the console
        System.out.println (strLine);

        ind.close();
        if(strLine.equals("1")){

            result = false;   
        }else{
            result = true;    
        }

    }catch(Exception e){}
    return result;
}  


0 commentaires

0
votes

Déclarez la chaîne de chaîne avant le bloc Type / Catch
puis écrivez votre instruction IF après le bloc d'essai / attraper comme xxx

se débarrasser du bloc d'en plus.


0 commentaires

0
votes
import java.io.*;
public class GameHelper 
{
    public String getUserInput(String prompt) {
        String inputLine = null;
        System.out.print(prompt + “ “);
        try {
            BufferedReader is = new BufferedReader(
            new InputStreamReader(System.in));
            inputLine = is.readLine();
            if (inputLine.length() == 0 ) return null;
        } 
        catch (IOException e) {
            System.out.println(“IOException: “ + e);
        }
        return inputLine;
    }
}
Make sure you write import java.io.* before you write your program. Now You will be able to return the function even outside the try and catch

0 commentaires