Моя программа пытается сканировать мой каталог в поисках файлов .cmp или .txt.
Если бы fileName равнялся "test", и если бы не было ни файлов test.cmp, ни test.txt, моя программа по-прежнему генерировала бы исключение FileNotFoundException, несмотря на мой блок try-catch при первом перехвате. Я попытался переместить второй блок try-catch, но, похоже, ничего не работает - все, что я тестирую в коде с файлом, который не существует, все равно приводит к исключению.
public int checkFileExistence() {
BufferedReader br = null;
int whichFileExists = 0;
try {//check to see if a .cmp exists
br = new BufferedReader(new FileReader(fileName + ".cmp"));
whichFileExists = 0;// a .cmp exists
}
catch (IOException e){ //runs if a .cmp file has not been found
try {//check to see if a .txt file exists
br = new BufferedReader(new FileReader(fileName + ".txt"));
whichFileExists = 1;//a .txt file exists
}
catch (IOException e2) {//if no .txt (and .cmp) file was found
e2.printStackTrace();
whichFileExists = 2; //no file exists
}
}
finally {
try {
br.close();
}
catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return whichFileExists;
}
Я ожидаю, что программа будет работать, но каждый раз, когда я тестирую программу, программа выдает исключение FileNotFoundException, в котором говорится, что «test.txt» не существует.