メソッド(Java)から適切な論理出力を取得できません

私は、ファイルから情報を読み出すために呼び出されるブール値のメソッドを書いています。特定の例外がスローされた場合、メソッドはブール値
“false”を返す必要があります。そうでなければ、値
“true”を返すべきです。ただし、このメソッドは何があっても常に値「true」を返します。実際に読み取られるファイルには、最初の行(週番号を表す)に数字があり、残りの行は、各行の1人の患者の治療情報で構成されています。私のコードは次のとおりです:

public boolean readTreatmentsFromFile(String filename) {
  boolean value = true;
  try {
    FileReader textFileReader = new FileReader(filename);
    BufferedReader textReader = new BufferedReader(textFileReader);

    System.out.println("READING TREATMENTS FROM FILE: " + filename);

    int week = Integer.parseInt(textReader.readLine());

    if (week != weekNumber) {
      throw new ArithmeticException(); 
    }

    String post = textReader.readLine();

    while(post != null) {
      addPost(post);
      if (!addPost(post))
        value = false;
      post = textReader.readLine();
    }
    textReader.close();
  }
  catch (ArithmeticException exception) {
    System.out.println("Invalid week number in the file: " + filename);
    value = false;
  }
  catch (FileNotFoundException exception) {
    System.out.print("The file cannot be located");
    value = false;
  }
  catch (IOException exception) {
    System.out.print("Cannot read the file:" + filename);
    value = false;
  }

  return value;
}

どのように私はそれが私に適切なブール結果を与えるためにコードを変更する必要がありますかに関するすべての情報は非常に感謝されます!

ベストアンサー

私はこれを考慮します:変数
‘result’を返します。デフォルトはfalseです。成功した場合にのみtrueに設定します。以下を参照してください(私はコード自体をデバッグしていません)。

public boolean readTreatmentsFromFile(String filename) {
    boolean result = false;//pessimistic default

        try {
            FileReader textFileReader = new FileReader(filename);
            BufferedReader textReader = new BufferedReader(textFileReader);

            System.out.println("READING TREATMENTS FROM FILE: " + filename);

            int week = Integer.parseInt(textReader.readLine());

            if (week != weekNumber) {
                throw new ArithmeticException(); 
            }

            String post = textReader.readLine();

            while(post != null) {
                addPost(post);
                post = textReader.readLine();
            }
            textReader.close();
            result = true; //SUCCESS!
        }
        catch (ArithmeticException exception) {
            System.out.println("Invalid week number in the file: " + filename);
        }
        catch (FileNotFoundException exception) {
            System.out.print("The file cannot be located");
        }
        catch (IOException exception) {
            System.out.print("Cannot read the file:" + filename);
        }

        return result;
    }

コメントする

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です