Я сейчас работаю над проектом и натолкнулся на головокружительную головку. Я программирую на Java около двух лет, и я рассмотрел исключения, но никогда не понимал их должным образом.
В моей текущей ситуации у меня есть основной метод, который инициализирует класс
WikiGraph wiki = wiki = new WikiGraph(getFile());
Конструктор Wikigraph берет имя файла, которое я получаю через DialogBox в методе getFile()
.
Затем конструктор для 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()
?
РЕДАКТИРОВАТЬ: я полагаю, я должен сделать проблему с файлом немного яснее.
Расширение файла - это не то, на чем основан IncorrestFileTypeError, и, следовательно, это может быть ошибочное имя ошибки.
Данный файл может иметь практически любое расширение, его содержимое должно быть правильно сформировано.