Tengo un comando que crea un archivo en el disco. Como la carpeta en la que se debe crear el archivo es dinámica, tengo un catch (FileNotFoundException e). En el mismo bloque de prueba, ya tengo un bloque catch (Exception e). Por alguna razón, cuando ejecuto mi código y la carpeta aún no existe, se usa el bloque catch (Exception e), no FileNotFoundException.JAVA + try catch (FileNotFoundException e) entra en catch (Exception e)?
El depurador está claro, aunque (al menos para mí), mostrando una FileNotFoundException: java.io.FileNotFoundException: c: \ MyData \ 2F8890C2-13B9-4D65-987D-5F447FF0DDA7 \ filename.png (El sistema no puede encontrar el ruta especificada)
¿Alguna idea de por qué no entra en el bloque FileNotFoundException? Gracias;
CÓDIGO:
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;
}
Sería útil si publica el fragmento de código real con el que está teniendo el problema. También asegúrese de que la excepción FileNotFoundException que está importando sea la misma que se está lanzando. Ocasionalmente, su IDE puede importar el paquete incorrecto si hay otra biblioteca en su ruta de clase que también tiene una excepción FileNotFoundException. No es probable, pero es importante descartarlo primero. – Jberg
por favor, publique el código y la stacktrace también. – Bhushan
Eso debería funcionar. Haz lo que @normalocity sugirió para confirmar el nombre de la clase de excepción. Me aventuraría a adivinar que podría ser una IOException general. – JustinKSU