Método arrojable printStackTrace() en Java con ejemplos

imprimirStackTrace()

El método printStackTrace() de la clase Java.lang.Throwable que se usa para imprimir este Throwable junto con otros detalles como el nombre de la clase y el número de línea donde ocurrió la excepción significa su rastreo inverso. Este método imprime un seguimiento de pila para este objeto Throwable en el flujo de salida de error estándar. 
La primera línea de salida muestra la misma string que devolvió el método toString() para este objeto que significa nombre de clase de excepción y las líneas posteriores representan datos registrados previamente por el método fillInStackTrace(). 
Sintaxis: 
 

public void printStackTrace()

Valor devuelto: este método no devuelve nada.
Los siguientes programas ilustran el método printStackTrace de la clase Java.lang.Throwable:
Ejemplo 1:
 

Java

// Java program to demonstrate
// the printStackTrace () Method.
 
import java.io.*;
 
class GFG {
 
    // Main Method
    public static void main(String[] args)
        throws Exception
    {
 
        try {
 
            testException1();
        }
 
        catch (Throwable e) {
 
            // print stack trace
            e.printStackTrace();
        }
    }
 
    // method which throws Exception
    public static void testException1()
        throws Exception
    {
 
        // create a ArrayIndexOutOfBoundsException Exception
        ArrayIndexOutOfBoundsException
            ae
            = new ArrayIndexOutOfBoundsException();
 
        // create a new Exception
        Exception ioe = new Exception();
 
        // initialize the cause and throw Exception
        ioe.initCause(ae);
        throw ioe;
    }
}
Producción: 

java.lang.Exception
    at GFG.testException1(File.java:36)
    at GFG.main(File.java:15)
Caused by: java.lang.ArrayIndexOutOfBoundsException
    at GFG.testException1(File.java:32)
    ... 1 more

 

Ejemplo 2:
 

Java

// Java program to demonstrate
// the printStackTrace () Method.
 
import java.io.*;
 
class GFG {
 
    // Main Method
    public static void main(String[] args)
        throws Exception
    {
 
        try {
 
            testException1();
        }
 
        catch (Throwable e) {
 
            // print stack trace
            e.printStackTrace();
        }
    }
 
    // method which throws Exception
    public static void testException1()
        throws Exception
    {
 
        // create a ArrayIndexOutOfBoundsException Exception
        ArrayIndexOutOfBoundsException
            ae
            = new ArrayIndexOutOfBoundsException();
 
        // create a new Exception
        Exception ioe = new Exception();
 
        // initialize the cause and throw Exception
        ioe.initCause(ae);
        throw ioe;
    }
}
Producción: 

java.lang.Exception
    at GFG.testException1(File.java:36)
    at GFG.main(File.java:15)
Caused by: java.lang.ArrayIndexOutOfBoundsException
    at GFG.testException1(File.java:32)
    ... 1 more

 

printStackTrace(PrintStream s)

El método printStackTrace(PrintStream s) de la clase Java.lang.Throwable se usa para imprimir este Throwable junto con otros detalles como el nombre de la clase y el número de línea donde ocurrió la excepción en el flujo de impresión especificado. Este método funciona igual que printStackTrace() pero la diferencia es solo que imprime en el flujo de impresión especificado pasado como parámetro.
Sintaxis: 
 

public void printStackTrace(PrintStream s)

Parámetros: este método acepta PrintStream s como un parámetro que se especifica en el flujo de impresión donde queremos escribir los detalles de Throwable.
Valor devuelto: este método no devuelve nada.
Los siguientes programas ilustran el método printStackTrace(PrintStream s) de la clase Java.lang.Throwable:
Ejemplo 1:
 

Java

// Java program to demonstrate
// the printStackTrace(PrintStream s) Method.
 
import java.io.*;
 
class GFG {
 
    // Main Method
    public static void main(String[] args)
        throws Exception
    {
        try {
 
            // create a array of Integers
            int[] i = new int[2];
 
            // try to add numbers to array
            i[2] = 3;
        }
        catch (Throwable e) {
 
            // print Stack Trace
            e.printStackTrace(System.out);
        }
    }
}
Producción: 

java.lang.ArrayIndexOutOfBoundsException: 2
    at GFG.main(File.java:18)

 

Ejemplo 2:
 

Java

// Java program to demonstrate
// the printStackTrace(PrintStream s) Method.
 
import java.io.*;
 
class GFG {
 
    // Main Method
    public static void main(String[] args)
        throws Exception
    {
 
        try {
 
            testException1();
        }
 
        catch (Throwable e) {
 
            // create printstream object
            PrintStream
                obj
                = new PrintStream(System.out);
 
            // print stack trace
            e.printStackTrace(obj);
        }
    }
 
    // method which throws Exception
    public static void testException1()
        throws Exception
    {
 
        throw new Exception("System is Down");
    }
}
Producción: 

java.lang.Exception: System is Down
    at GFG.testException1(File.java:35)
    at GFG.main(File.java:15)

 

printStackTrace(PrintWriter s)

El método printStackTrace(PrintWriter s) de la clase Java.lang.Throwable se usa para imprimir este Throwable junto con otros detalles como el nombre de la clase y el número de línea donde se produjo la excepción en el Escritor de impresión especificado. Este método funciona igual que printStackTrace() pero la diferencia es que se imprime en el Escritor de impresión especificado pasado como parámetro.
Sintaxis: 
 

public void printStackTrace(PrintWriter s)

Parámetros: este método acepta PrintWriter s como un parámetro que se especifica en el escritor de impresión donde se escribirán los detalles de Throwable.
Valor devuelto: este método no devuelve nada.
Los siguientes programas ilustran el método printStackTrace(PrintWriter s) de la clase Throwable:
Ejemplo 1:
 

Java

// Java program to demonstrate
// the printStackTrace(PrintWriter s) Method.
 
import java.io.*;
 
class GFG {
 
    // Main Method
    public static void main(String[] args)
        throws Exception
    {
        try {
 
            // divide two numbers
            int a = 74, b = 0;
 
            int c = a / b;
        }
        catch (Throwable e) {
 
            // Using a StringWriter,
            // to convert trace into a String:
            StringWriter sw = new StringWriter();
 
            // create a PrintWriter
            PrintWriter pw = new PrintWriter(sw);
            e.printStackTrace(pw);
 
            String error = sw.toString();
 
            System.out.println("Error:\n" + error);
        }
    }
}
Producción: 

Error:
java.lang.ArithmeticException: / by zero
    at GFG.main(File.java:17)

 

Ejemplo 2: 
 

Java

// Java program to demonstrate
// the printStackTrace(PrintWriter s) Method.
 
import java.io.*;
 
class GFG {
 
    // Main Method
    public static void main(String[] args)
        throws Exception
    {
 
        try {
 
            testException1();
        }
 
        catch (Throwable e) {
 
            // Using a StringWriter,
            // to convert trace into a String:
            StringWriter sw = new StringWriter();
 
            // create a PrintWriter
            PrintWriter pw = new PrintWriter(sw);
            e.printStackTrace(pw);
 
            String error = sw.toString();
 
            System.out.println("Error:\n" + error);
        }
    }
 
    // method which throws Exception
    public static void testException1()
        throws Exception
    {
        throw new Exception(
            "Waiting for input but no response");
    }
}
Producción: 

Error:
java.lang.Exception: Waiting for input but no response
    at GFG.testException1(File.java:38)
    at GFG.main(File.java:15)

 

Referencias:  
https://docs.oracle.com/javase/10/docs/api/java/lang/Throwable.html#printStackTrace()  
https://docs.oracle.com/javase/10/docs/api/java /lang/Throwable.html#printStackTrace(java.io.PrintStream)  
https://docs.oracle.com/javase/10/docs/api/java/lang/Throwable.html#printStackTrace(java.io.PrintWriter)
 

Publicación traducida automáticamente

Artículo escrito por AmanSingh2210 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *