come catturare un'eccezione che è “mai gettato” in Java
Domanda
Ho il seguente blocco di codice, che usa la libreria JSch trovato alla http: //www.jcraft. com / jsch /
try {
channel.put(f, filename);
} catch (FileNotFoundException e) {
System.out.println("no file.");
}
So che il metodo put può lanciare una FileNotFoundException quando il file specificato da f non si trova a livello locale, ma eclissi mi dice che il blocco catch è irraggiungibile, e tale eccezione non può mai essere gettato. Quando cambio a:
try {
channel.put(f, filename);
} catch (Exception e) {
System.out.println(e.getMessage());
}
I ottenere:
java.io.FileNotFoundException: C:\yo\hello2 (The system cannot find the file specified)
Tutte le idee?
Soluzione
Credo che il tuo FileNotFoundException
è avvolto in un altro gettato con il metodo channel
e per questo non si può prendere.
Provare a stampare la classe del eccezione generata dal metodo:
...
} catch (Exception e) {
System.out.println(e.getClass());
}
Altri suggerimenti
Controlla gli estratti conto di importazione per assicurarsi di non sta importando una classe FileNotFoundException
da un pacchetto di oltre java.io
.