Mam pewne polecenie, które tworzy plik na dysku. Ponieważ folder, w którym plik ma zostać utworzony, jest dynamiczny, mam funkcję catch (FileNotFoundException e). W tym samym bloku try mam już blok catch (Exception e). Z jakiegoś powodu, po uruchomieniu mój kod i folder nie istnieje jeszcze, blok catch (wyjątek e) jest używany, a nie FileNotFoundException jeden.JAVA + spróbuj złapać (FileNotFoundException e) w catch (wyjątek e)?
Debuger jest jasne, choć (przynajmniej dla mnie), pokazując FileNotFoundException: java.io.FileNotFoundException: C: \ mydata \ 2F8890C2-13B9-4D65-987D-5F447FF0DDA7 \ filename.png (System nie może odnaleźć ścieżka podana)
Każdy pomysł, dlaczego nie wchodzi w blok FileNotFoundException? Dzięki;
KOD:
import java.io.FileNotFoundException;
try{
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
Rectangle screenRectangle = new Rectangle(screenSize);
Robot robot = new Robot();
BufferedImage image = robot.createScreenCapture(screenRectangle);
ImageIO.write(image, "png", new File(fileName));
}
catch (FileNotFoundException e){
// do stuff here..
return false;
}
catch(Exception e){
// do stuff here..
return = false;
}
Przydałoby się opublikować rzeczywisty fragment kodu, w którym występuje problem. Upewnij się także, że importowany plik FileNotFoundException jest tym samym, który jest zgłaszany. Czasami Twój IDE może zaimportować niewłaściwy pakiet, jeśli istnieje inna biblioteka na ścieżce klasy, która ma również wyjątek FileNotFoundException. To mało prawdopodobne, ale ważne jest, aby najpierw to wykluczyć. – Jberg
proszę również zaksięgować kod i stos stacktrace. – Bhushan
To powinno zadziałać. Wykonaj polecenie @normalocity, aby potwierdzić nazwę klasy wyjątku. Zaryzykowałbym przypuszczenie, że to może być ogólny wyjątek IOException. – JustinKSU