En PC Resumen vamos a explicar que diferencias hay en los métodos printStackTrace, getStackTrace y getMessage en Java. La clase Throwable ofrece un método llamado printStackTrace que envía el flujo de error estándar la pila de llamadas a métodos. A menudo esto ayuda en la prueba y la depuración. La clase Throwable ofrece también un método llamado getStackTrace que obtiene la información de rastreo de la pila. El método getMessage devuelve la cadena descriptiva almacenada en una excepción.

En el código siguiente se muestra el uso de estas tres funciones:

class UsExcepciones {
    public static void main(String args[]) {
        try {
            metodo1();
        } catch (Exception excepcion) {
            System.err.printf( "%s\n\n", excepcion.getMessage() );
            excepcio.printStackTrace();
            StackTraceElement[] elementsRastreo = excepcion.getStackTrace();
            System.out.println("\nRastreo de la pila de getStackTrace:");
            System.out.println("Clase\t\t Archivo\t\tLínea\tMetodo");
            for(StackTraceElement element : elementsRastreo ) {
                System.out.printf("%s\t", element.getClassName());
                System.out.printf("%s\t\t", element.getFileName());
                System.out.printf("%s\t", element.getLineNumber());
                System.out.printf("%s\n", element.getMethodName());
            }
        }
    }

    public static void metodo1() throws Exception {
        metodo2();
    }
    public static void metodo2 () throws Exception {
        metodo3();
    }
    public static void metodo3 () throws Exception {
        throw new Exception ("La excepción se tira al método3");
    }
}
Pin It