В блоке catch первого оператора try catch вы можете поместить любой код, который вы хотите, и он будет выполнен, когда возникнет исключение.Вы можете прочитать другой файл, попробовать прочитать тот же файл еще раз, попросить пользователя указать правильный файл, ...
Но, как уже упоминалось, лучшее решение - проверить, существует ли файл, прежде чем создавать программу чтения.И если это не удастся, вы можете использовать другой файл (что, если этот файл тоже выйдет из строя?)
В следующем коде я адаптировал ваш метод для проверки и выбросил исключение, если файл недействителен.При использовании этого метода вы можете реагировать на это.Обратите внимание, что вы не открыли ни одного читателя, если указали 2 неверных имени файла.
try{
load(fname);
}catch(Exception e){
try{
load(alternativeFName);
}catch(Exception e){
System.out.println("None of the files are available");
e.printStackTrace();
}
}
И вот как будет выглядеть ваша функция загрузки:
public void load(String fname) throws Exception {
// try opening file
File file = new File(fname);
// check if valid file
if( !file.exists() ){
// if no valid file throw exception so we can react on that
throw new Exception("File not available: "+fname);
}
//your code for reading here, at this point you know the file exists
//...
}