Clase Java.lang.StackTraceElement en Java

Un elemento en un seguimiento de pila, como lo devuelve Throwable.getStackTrace(). Cada elemento representa un solo marco de pila. Todos los marcos de la pila, excepto el que está en la parte superior de la pila, representan una invocación de método. El marco en la parte superior de la pila representa el punto de ejecución en el que se generó el seguimiento de la pila. 

Esta clase describe un marco de pila único, que es un elemento individual de un seguimiento de pila cuando ocurre una excepción.

  • Todos los marcos de la pila, excepto el que está en la parte superior de la pila, representan una invocación de método.
  • El marco en la parte superior de la pila representa el punto de ejecución del cual se generó el seguimiento de la pila.
  • Cada marco de pila representa un punto de ejecución, que incluye elementos como el nombre del método, el nombre del archivo y el número de línea del código fuente.
  • El método getStackTrace () de la clase Throwable devuelve una array de StackTraceElement .

Constructor: crea un elemento de seguimiento de pila que representa el punto de ejecución especificado.

StackTraceElement(String declaringClass, 
String methodName, String fileName, int lineNumber)

Parámetros: 

  • declarandoClass : el nombre completo de la clase que contiene el punto de ejecución representado por el elemento de seguimiento de la pila.
  • methodName : el nombre del método que contiene el punto de ejecución representado por el elemento de seguimiento de la pila.
  • fileName : el nombre del archivo que contiene el punto de ejecución representado por el elemento de seguimiento de la pila, o nulo si esta información no está disponible
  • lineNumber : el número de línea de la línea de origen que contiene el punto de ejecución representado por este elemento de seguimiento de pila, o un número negativo si esta información no está disponible. Un valor de -2 indica que el método que contiene el punto de ejecución es un método nativo.

Lanza: NullPointerException: si declarar Class o methodName es nulo.

Métodos: 

1. boolean equals(ob): Devuelve try si el StackTraceElement que invoca es como el pasado en ob . De lo contrario devuelve falso.

Syntax: public boolean equals(ob)
Returns: true if the specified object is 
another StackTraceElement instance representing the same execution 
point as this instance.
Exception: NA

Java

// Java code illustrating equals() method
import java.lang.*;
import java.io.*;
import java.util.*;
public class StackTraceElementDemo
{ 
    public static void main(String[] arg)
    {
        StackTraceElement st1 = new StackTraceElement("foo", "fuction1",
                                                   "StackTrace.java", 1);
        StackTraceElement st2 = new StackTraceElement("bar", "function2",
                                                   "StackTrace.java", 1);
         
        Object ob = st1.getFileName();
 
        // checking whether file names are same or not
        System.out.println(st2.getFileName().equals(ob));
    }
}

Producción:

true

2. String getClassName(): Devuelve el nombre de la clase del punto de ejecución descrito por el StackTraceElement que invoca .

Syntax: public String getClassName().
Returns: the fully qualified name of the Class
containing the execution point represented by this stack trace element.
Exception: NA.

Java

// Java code illustrating getClassName() method.
import java.lang.*;
import java.io.*;
import java.util.*;
public class StackTraceElementDemo
{ 
    public static void main(String[] arg)
    {  
        System.out.println("Class name of each thread involved:");
        for(int i = 0; i<2; i++)
        {  
            System.out.println(Thread.currentThread().getStackTrace()[I].
            getClassName());
        }
    }
}

Producción:

Class name of each thread involved:
java.lang.Thread
StackTraceElementDemo

3. String getFileName(): Devuelve el nombre de archivo del punto de ejecución descrito por el StackTraceElement que invoca .

Syntax: public String getFileName().
Returns: the name of the file containing 
the execution point represented by this stack trace element,
or null if this information is unavailable.
Exception: NA.

Java

// Java code illustrating getFileName() method.
import java.lang.*;
import java.io.*;
import java.util.*;
public class StackTraceElementDemo
{ 
   public static void main(String[] arg)
   {
       System.out.println("file name: ");
       for(int i = 0; i<2; i++)
       System.out.println(Thread.currentThread().getStackTrace()[i].
        getFileName());
   }
}

Producción:

file name: 
Thread.java
StackTraceElementDemo.java

4. int getLineNumber(): Devuelve el número de línea del código fuente del punto de ejecución descrito por el StackTraceElement que invoca . En algunas situaciones, el número de línea no estará disponible, en cuyo caso se devuelve un valor negativo.

Syntax: public int getLineNumber().
Returns: the line number of the source line 
containing the execution point represented by this stack 
trace element, or a negative number if this information is 
unavailable.
Exception: NA.

Java

// Java code illustrating getLineNumber() method.
import java.lang.*;
import java.io.*;
import java.util.*;
public class StackTraceElementDemo
{ 
   public static void main(String[] arg)
   {
       System.out.println("line number: ");
       for(int i = 0; i<2; i++)
       System.out.println(Thread.currentThread().getStackTrace()[i].
        getLineNumber());
   }
}

Producción:

line number: 
1556
10

5. String getMethodName(): Devuelve el nombre del método del punto de ejecución descrito por el StackTraceElement que invoca .

Syntax: public String getMethodName().
Returns: the name of the method containing the 
execution point represented by this stack trace element.
Exception: NA.

Java

// Java code illustrating getMethodName() method.
import java.lang.*;
import java.io.*;
import java.util.*;
public class StackTraceElementDemo
{ 
   public static void main(String[] arg)
   {
       System.out.println("method name: ");
       for(int i = 0; i<2; i++)
       System.out.println(Thread.currentThread().getStackTrace()[i].
        getMethodName());
   }
}

Producción:

method name: 
getStackTrace
main

6. int hashCode(): Devuelve el código hash del StackTraceElement que invoca .

Syntax: public int hashCode().
Returns: a hash code value for this object.
Exception: NA.

Java

// Java code illustrating hashCode() method.
import java.lang.*;
import java.io.*;
import java.util.*;
public class StackTraceElementDemo
{ 
   public static void main(String[] arg)
   {
       System.out.println("hash code: ");
       for(int i = 0; i<2; i++)
       System.out.println(Thread.currentThread().getStackTrace()[i].
        hashCode());
   }
}

Producción:

hash code: 
-1225537245
-1314176653

7. boolean isNativeMethod(): Devuelve verdadero si el StackTraceElement que invoca describe un método nativo. De lo contrario devuelve falso.

Syntax: public boolean isNativeMethod().
Returns: true if the method containing the execution 
point represented by this stack trace element is a native method.
Exception: NA.

Java

// Java code illustrating isNativeMethod() method.
import java.lang.*;
import java.io.*;
import java.util.*;
public class StackTraceElementDemo
{ 
   public static void main(String[] arg)
   {
      
       for(int i = 0; i<2; i++)
       System.out.println(Thread.currentThread().getStackTrace()[i].
        isNativeMethod());
   }
}

Producción:

false
false

8. String toString(): Devuelve el equivalente de String de la secuencia de invocación.

Syntax: public String toString().
Returns: a string representation of the object.
Exception: NA.

Java

// Java code illustrating toString() method.
import java.lang.*;
import java.io.*;
import java.util.*;
public class StackTraceElementDemo
{ 
   public static void main(String[] arg)
   {
       System.out.println("String equivalent: ");
       for(int i = 0; i<2; i++)
       System.out.println(Thread.currentThread().getStackTrace()[i].
        toString());
   }
}

Producción:

String equivalent: 
java.lang.Thread.getStackTrace
StackTraceElementDemo.main

Este artículo es una contribución de Abhishek Verma . Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.org o enviar tu artículo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
 

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 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 *