7

try-catch blockを持つ関数からブール値を返そうとしていますが、

しかし問題は、値を返すことができないことです。

try-catch ブロック内の変数には外部からアクセスできないことはわかっていますが、アクセスしたいのです。

public boolean checkStatus(){
        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")){

            return false;   
        }else{
            return true;    
        }

    }catch(Exception e){}
}   

私のプロジェクトでは、それは私にとって非常に深刻な問題です。私はググって自分で試しましたが、何も解決しませんでした。

今、何らかの解決策が見つかることを願っています。returnステートメントが見つからないというエラーがあることは知っていますが 、プログラムがこのように正確に機能することを望んでいます。

今、私がこれに厳密な理由

私のjarファイルでは、値1または0を見つけるためにテキストファイルにアクセスして、「1」の場合はアクティブにし、そうでない場合は非アクティブにする必要があります。

そのため、ブール値を使用しています。

4

5 に答える 5

3

エラーは、例外がスローされた場合に何も返さないことです。

以下を試してください:

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;
}  
于 2013-02-22T18:07:29.860 に答える
0

try/catch ブロックの前に文字列 strLine を宣言し、try/catch ブロック
の後に if ステートメントを次のように記述します。

    String strLine;

    try{
        //......
    }catch(Exception e){
        //.....
    }

    if(strLine.equals("1"))
       return false;   

    return true;    

else ブロックを削除します。

于 2013-02-22T18:08:57.440 に答える