No estoy seguro acerca de cómo administrar las excepciones en la GUI; mi objetivo es informar al usuario si algo sale mal y aparece un mensaje inteligible.Manejo de excepciones en la GUI de Swing
Estoy pensando en hacer algo como esto:
// I'm inside an actionPerformed() method
try {
// do whatever I have to do here
} catch (KnownBusinessException1 e) {
// inform the user and do something;
// most times simply inform the user that it wasn't possible to complete the
// operation and remain in the same window instead of moving forward.
} catch (KnownBusinessException2 e) {
// just as above
} catch (KnownDataAccessException1 e) {
// just as above
} catch (KnownDataAccessException2 e) {
// just as above
} catch (RuntimeException e) { // I want to catch any other unexpected exception,
// maybe NPE or unchecked IllegalArgumentExceptions and so on
// something went wrong, I don't know where nor how but I will surely inform the user
}
Ahora: Si en el bloque try hay excepciones para la captura de comprobarse, sería mejor para anidar un try/catch o para atrapar a estos comprobado excepciones después de atrapar RuntimeException? (Probablemente depende, ni siquiera sé si esto va a pasar por cierto)
Otra cosa: ¿qué hay de Error
s? No me gustaría experimentar un cierre inesperado si fuera un usuario, prefiero que la aplicación me diga que algo salió muy mal y que nadie puede hacer nada al respecto, "el fin del mundo está llegando, así que saldrá en este momento ". Al menos sabría que no fue mi culpa jajaja.
Por cierto no sé si es una buena práctica para detectar errores ...: \
Hay una mejor manera de hacer esto en una aplicación Swing?
Mira esto para los errores http://stackoverflow.com/questions/352780/when-to-catch-java-lang-error –
Posible duplicado de [¿Cómo puedo ver las excepciones de envío de subprocesos de evento (EDT)?] (http://stackoverflow.com/questions/4448523/how-can -i-catch-event-dispatch-thread-edt-exceptions) – trashgod
@BheshGurung Ya lo había leído. Bueno, si no hay nada de malo en ello, creo que agregaré otro bloque catch después del bloque catch de RuntimeException para atrapar errores y tratar de informar al usuario antes de salir. @ trashgod: eso no parece ser un duplicado para mí :) – tmh