Tôi có một số lệnh tạo tệp trên đĩa. Vì thư mục trong đó tệp phải được tạo là động, tôi có một nắm bắt (FileNotFoundException e). Trong cùng một khối try, tôi đã có một khối catch (Exception e). Vì một số lý do, khi tôi chạy mã của mình và thư mục chưa tồn tại, khối catch (Ngoại lệ e) được sử dụng, không phải là tệp FileNotFoundException.JAVA + thử bắt (FileNotFoundException e) sẽ bắt (Ngoại lệ e)?
Trình gỡ lỗi là rõ ràng mặc dù (với tôi ít nhất), hiển thị một FileNotFoundException: java.io.FileNotFoundException: c: \ mydata \ 2F8890C2-13B9-4D65-987D-5F447FF0DDA7 \ filename.png (Hệ thống không thể tìm thấy đường dẫn được chỉ định)
Bất kỳ ý tưởng nào tại sao nó không đi vào khối FileNotFoundException? Cảm ơn;
Mã sản phẩm:
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;
}
Sẽ hữu ích nếu bạn đăng đoạn mã thực tế mà bạn gặp sự cố. Ngoài ra, hãy đảm bảo rằng FileNotFoundException bạn đang nhập cũng giống như tệp đang được ném. Thỉnh thoảng IDE của bạn có thể nhập sai gói nếu có một thư viện khác trên đường dẫn lớp của bạn cũng có một FileNotFoundException. Không có khả năng, nhưng điều quan trọng là phải loại trừ điều đó trước tiên. – Jberg
vui lòng đăng mã và chồng lên nhau. – Bhushan
Điều đó sẽ hoạt động. Làm những gì @normalocity đề xuất để xác nhận tên lớp ngoại lệ. Tôi sẽ mạo hiểm để đoán nó có thể là một IOException chung. – JustinKSU