我目前正在处理一个项目,遇到了一个有点难以理解的问题。我已经学习Java编程两年了,也学过异常处理,但从未真正理解过。
在我的当前情况下,我的主方法初始化了一个类。
WikiGraph wiki = wiki = new WikiGraph(getFile());
Wikigraph构造函数需要一个文件名,我通过
getFile()
方法从DialogBox中获取。然后,Wikigraph的构造函数调用了一个名为
loadfile(filename)
的方法,该方法尝试加载和解析给定的文件。在
loadfile()
方法中,我会抛出一个IncorrectFileTypeError异常。我的问题是,我应该在哪里处理这个异常?
目前,我在
loadfile()
方法中捕获它。try {
//load file
} catch (IncorrectFileTypeError e){
System.out.println("Incorrect file type: "+filename+": "+e.getMessage());
throw new IncorrectFileTypeError();
}
但我也可以在WikiGraph初始化时进行捕获,如下所示:
while(wiki==null){ //While There is no valid file to add to the wikigraph
try {
wiki = new WikiGraph(getFile()); //Try to load file
} catch (IncorrectFileTypeError e) { //If file cannot be loaded
JOptionPane.showMessageDialog(null, "Incorrect File Type Given. Please Choose another file."); //Display error message
getFile(); //Prompt user for another file
}
}
现在我处理错误的方式是正确/最好的方式吗?还是应该在getFile()
方法中处理?
编辑:我想我应该让文件问题更清晰一些。 不正确的文件类型错误不是基于文件扩展名,因此它可能是一个误导性的错误名称。 给定的文件可以有任何扩展名,但其内容必须格式良好。