Actualmente estoy trabajando en un proyecto y me he topado con un poco de scratch. He estado programando en Java durante aproximadamente dos años, y he cubierto excepciones, pero nunca las he entendido correctamente.Dónde manejar una excepción
En mi situación actual Tengo mi principal método que inicializa una clase
WikiGraph wiki = wiki = new WikiGraph(getFile());
El constructor Wikigraph toma un nombre de archivo, que llego a través de un DialogBox en el método getFile()
.
El constructor para wikigraph luego llama a un método llamado loadfile(filename)
que intenta cargar y analizar el archivo dado.
El método loadfile()
es donde lanzaré un IncorrectFileTypeError.
Mi pregunta es, ¿dónde debo manejar esto?
En el momento en que se captura en el loadfile()
método
try {
//load file
} catch (IncorrectFileTypeError e){
System.out.println("Incorrect file type: "+filename+": "+e.getMessage());
throw new IncorrectFileTypeError();
}
Pero también lo cojo en la inicialización WikiGraph así:
while(wiki==null){ //While There is no valid file to add to the wikigraph
try {
wiki = new WikiGraph(getFile()); //Try to load file
} catch (IncorrectFileTypeError e) { //If file cannot be loaded
JOptionPane.showMessageDialog(null, "Incorrect File Type Given. Please Choose another file."); //Display error message
getFile(); //Prompt user for another file
}
}
Ahora es la forma en que he controlado el error la forma correcta/mejor? ¿O debería manejarse en otro lugar, como en el método getFile()
?
EDITAR: Supongo que debería hacer que el problema del archivo sea un poco más claro. La extensión de archivo no es en lo que se basa el IncorriseFileTypeError, y por lo tanto puede ser un nombre de error engañoso. El archivo proporcionado puede tener prácticamente cualquier extensión, es el contenido de eso debe estar bien formado.
Esta es una vista subjetiva de cómo las personas manejan el manejo de excepciones. Colocaría esto en el Wiki de la comunidad – Ascalonian