Método arrojable getStackTrace() en Java con ejemplos

El método getStackTrace() de la clase Throwablese utiliza para devolver una array de elementos de seguimiento de pila que es la información de seguimiento de pila impresa por printStackTrace(). En la array de elementos de traza de pila (suponiendo que la longitud de la array no sea cero), cada elemento representa un marco de pila. El primer elemento de la array significa que el elemento de índice cero de esta array representa la parte superior de la pila, que es el último método invocado en la secuencia o podemos decir que esta información del elemento de índice cero está relacionada con el punto donde se creó y lanzó throwable . El último elemento de esta array representa la parte inferior de la pila, que es el primer método invocado en la secuencia. En algunos casos, se devuelve uno o más marcos de pila del seguimiento de pila. La array devuelta por este método contendrá un elemento para cada cuadro que imprimirá printStackTrace.Sintaxis:

public StackTraceElement[] getStackTrace()

Devoluciones: este método devuelve una array de elementos de seguimiento de pila que representan la información de seguimiento de pila. Los siguientes programas ilustran el método getStackTrace de la clase Throwable : Ejemplo 1: 

Java

// Java program to demonstrate
// the getStackTrace() Method.
 
import java.io.*;
 
class GFG {
 
    // Main Method
    public static void main(String[] args)
        throws Exception
    {
 
        try {
 
            // add the numbers
            addPositiveNumbers(2, -1);
        }
 
        catch (Throwable e) {
 
            // get StackTraceElements
            // using getStackTrace()
            StackTraceElement[] stktrace
                = e.getStackTrace();
 
            // print element of stktrace
            for (int i = 0; i < stktrace.length; i++) {
 
                System.out.println("Index " + i
                                   + " of stack trace"
                                   + " array contains = "
                                   + stktrace[i].toString());
            }
        }
    }
 
    // method which adds two positive number
    public static void addPositiveNumbers(int a, int b)
        throws Exception
    {
 
        // if Numbers are Positive
        // than add or throw Exception
        if (a < 0 || b < 0) {
 
            throw new Exception(
                "Numbers are not Positive");
        }
 
        else {
 
            System.out.println(a + b);
        }
    }
}
Producción:

Index 0 of stack trace array contains = GFG.addPositiveNumbers(File.java:48)
Index 1 of stack trace array contains = GFG.main(File.java:18)

Ejemplo 2: 

Java

// Java program to demonstrate
// the getStackTrace() Method.
 
import java.io.*;
 
class GFG {
 
    // Main Method
    public static void main(String[] args)
        throws Exception
    {
 
        try {
 
            testException1();
        }
 
        catch (Throwable e) {
 
            // get StackTraceElements
            // using getStackTrace()
            StackTraceElement[] stktrace
                = e.getStackTrace();
 
            // print element of stktrace
            for (int i = 0; i < stktrace.length; i++) {
 
                System.out.println("Index " + i
                                   + " of stack trace"
                                   + " array contains = "
                                   + stktrace[i].toString());
            }
        }
    }
 
    // method which throws Exception
    // calling other method testException2
    public static void testException1()
        throws Exception
    {
        // This method second in series
        // of calling method which throw exception
        // so this will be second index element
        testException2();
    }
 
    // method which throws Exception
    // calling other method testException3
    public static void testException2()
        throws Exception
    {
 
        // This method calls a method
        // where exception is thrown
        // so this will be first index element
        testException3();
    }
 
    // method which throws IndexOutOfBoundsException
    public static void testException3()
        throws IndexOutOfBoundsException
    {
 
        // here exception thrown
        // so this will be Zeroth element
        throw new IndexOutOfBoundsException(
            "Forcefully Generated Exception");
    }
}
Producción:

Index 0 of stack trace array contains = GFG.testException3(File.java:68)
Index 1 of stack trace array contains = GFG.testException2(File.java:58)
Index 2 of stack trace array contains = GFG.testException1(File.java:46)
Index 3 of stack trace array contains = GFG.main(File.java:17)

Referencias: https://docs.oracle.com/javase/10/docs/api/java/lang/Throwable.html#getStackTrace()

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 *