异常处理和构造函数

时间:2012-10-30 09:42:07

标签: exception file-io constructor

我正在将数据写入文件,当我写这个数据时,我想这样做,这样如果文件没有打开,它会给用户一条消息,说明出错了。我这样做的方法是调用方法来写,如果失败则返回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;

   }
 }
 }
 } 

1 个答案:

答案 0 :(得分:1)

构造函数不应该做任何事情。构造函数是与对象分配密切相关的初始化阶段。

应避免抛出异常,或在可能引发异常的构造函数中执行任何操作。

Java没有分离分配和初始化的阶段,没有代码,特别是IO代码应该在构造函数中。