Nie jestem pewny działania obsługi wyjątków. Jeśli napiszę, że moja metoda wyrzuca wyjątek (... throws IOException), to jest sens pisać wewnątrz tej funkcji
try {
in = new FileReader("plik.txt");
}
catch (FileNotFoundException ex) {
System.out.println("Nie ma takiego pliku");
}
?
FileNotFoundException dziedziczy po IOException, więc z tego, co rozumiem napisanie throws IOException powinno wystarczyć, zgadza się?
Jednak jeśli chcę, aby ten konkretny wyjątek (FileNotFoundException) został obsłużony w jakiś sposób w moim programie, mogę zrobić to w powyższy sposób?
Dodatkowo, jeżeli chciałbym uniknąć pisania "throws IOException", tylko obsłużyć ten wyjątek wewnątrz funkcji, jak mam to zrobić przy pomocy try catch, jeżeli funkcja wyrzucająca wyjątek (close()) znajduję się w bloku finally?
try {
in = new FileReader("plik.txt");
}
catch (FileNotFoundException ex) {
System.out.println("Nie ma takiego pliku");
}
finally{
if (in != null)
in.close();
}