0

私はファイルにデータを書き込んでいます。このデータを書き込むときに、ファイルが開かない場合に何かが間違っていることを示すメッセージがユーザーに表示されるようにします。これを行う方法は、メソッドを呼び出して書き込むことです。失敗した場合はfalseを返します。そうすれば、何が起こったかを確認するために何かをするようにユーザーに促すことができます。

ただし、オブジェクトを作成するとき、コンストラクターから何も返すことができないため、何をすべきかについて少し困惑しています。

public class Writetofile {
BufferedWriter writer = null;

public Writetofile(String[]details) throws IOException{
String machine= details[0];
String date=details[1];
String start_time = details[2];     
try{
   File new_cal= new File("C:\\Activity_Calibrator\\log\\"+machine+"\\"+machine+date+".txt");
   new_cal.getParentFile().mkdir();
   FileWriter fwriter = new FileWriter(new_cal);
   writer = new BufferedWriter(fwriter); 
   writer.write("Linear Calibratiton for " + machine + " carried out " + date+" ./n");
   writer.close();
  }
catch(Exception e){ in here I would like to be able to send a message back to m
code so that it can tell the user to check the folder etc}
} 

何か問題が発生した場合にレコードデータを呼び出すと、呼び出し元のクラスにfalseが返されます。そして私はメッセージを置くことができます。

 public boolean recordData(String record) throws IOException{
try{
    writer.append(record);
    writer.close();
    return true;
   }
catch(Exception e){
    return false;

   }
 }
 }
 } 
4

1 に答える 1

1

コンストラクターは何もすべきではありません。コンストラクターは、オブジェクトの割り当てに密接に関連する初期化フェーズです。

例外をスローしたり、コンストラクターで例外をスローする可能性のあることを実行したりすることは避けてください。

Javaは、割り当てと初期化のフェーズを分離しません。コード、特にIOコードはコンストラクターに含める必要があります。

于 2012-10-30T09:44:11.217 に答える