propagacion - Usando e.printStackTrace() en Java
propagacion de excepciones en java (5)
e.printStackTrace ();
No es una buena práctica porque imprime en el predeterminado ErrorStream, que la mayoría de las veces es la consola.
NetBeans debería advertirte sobre eso. La buena práctica al respecto es registrar el mensaje. Sigue la misma referencia:
http://onjava.com/pub/a/onjava/2003/11/19/exceptions.html
EDITAR Ver el primer comentario a continuación para obtener más información.
Esta es probablemente una pregunta para novatos, pero espero que puedas ayudarme. :) Tengo algo como esto:
try
{
//try to do something there
}
catch (IOException e)
{
//handle the exception
e.printStackTrace();
}
Estoy usando NetBeans IDE y, por alguna razón, printStackTrace está subrayado en una línea ondulada. Cuando presiono Alt + Enter, dice Throwable.printStackTrace () debe eliminarse. ¿Qué significa esto? ¿Alguien podría dar más información sobre lo que esto puede significar? ¿O puedo ignorar esto?
¡Gracias!
Es solo una recomendación. En eclipse está bien, creo que es solo el IDE que te dice que hay métodos más convencionales para hacerlo, como algunas de las otras respuestas. Encuentro que es útil para la depuración, y que debe decirle a los usuarios cuándo se producirá un error fatal, usar un modo de depuración (como un conmutador de consola -d) para recopilar estos registros.
Probablemente sea porque printStackTrace()
realmente no maneja el error tanto como simplemente volca la pila en la consola. Actúa como un marcador de posición hasta que lo reemplaza con el manejo correcto de errores (si es necesario) y reemplaza la salida con un registrador de algún tipo.
Solo imprimir un seguimiento de pila no es suficiente. Imprimir el trazado de la pila de la excepción en sí mismo no significa que sea una práctica completamente mala, pero imprimir un solo rastro de la pila cuando ocurre una excepción es un problema.
Siempre registre las excepciones (utilizando un buen marco de trabajo ), pero no las exponga al usuario final. Y asegúrese de mostrar trazas de pila solo en modo de desarrollo.
Yo mismo uso (la mayoría de las veces) logger.log(Level.SEVERE, <exception>.getMessage(), <exception>);
.
cuando netbeans sugiera que maneje la excepción '' Surround Statement with try-catch
'', si hace clic en esto, se generará):
try {
//something need to be handle(exception that throw)
} catch (SQLException ex) {
Logger.getLogger(ClassName.class.getName()).log(Level.SEVERE, null, ex);
}
Que es mejor que ex.printStackTrace();
.
Estos pueden ayudar:
Tratar:
e.printStackTrace(System.out);