Java StackTraceElement getLineNumber() 方法



描述

Java StackTraceElement getLineNumber() 方法返回包含此堆栈跟踪元素所表示的执行点的源代码行的行号。

声明

以下是java.lang.StackTraceElement.getLineNumber() 方法的声明

public int getLineNumber()

参数

返回值

此方法返回包含此堆栈跟踪元素所表示的执行点的源代码行的行号,如果此信息不可用,则返回负数。

异常

示例:使用 StackTraceElement 获取当前线程的行号

以下示例演示了 Java StackTraceElement getLineNumber() 方法的用法。在这个程序中,我们定义了一个名为 function2() 的函数,它从当前线程的 StackTraceElement 获取行号。另一个名为 function1() 的函数用于实例化 StackTraceElementDemo 类并调用 function2() 方法。在主方法中,我们调用了 function1() 方法,并打印结果。

package com.tutorialspoint;

public class StackTraceElementDemo {

   // main method
   public static void main(String[] args) {
      // call function1() to invoke function2()     
      function1();
   }
   
   // function1() is to invoke function2()
   // using StackTraceElementDemo object
   public static void function1() {
      new StackTraceElementDemo().function2();
   }
 
   // print the line number of current thread using StackTraceElement
   public void function2() {
      System.out.print("Line Number : ");
      System.out.print(Thread.currentThread().getStackTrace()[1].
      getLineNumber());
   }
}

输出

让我们编译并运行上述程序,这将产生以下结果:

Line Number : 20

示例:使用 ArithmeticException 的 StackTraceElement 获取行号

以下示例演示了 Java StackTraceElement getLineNumber() 方法的用法。在主方法中,我们创建了三个 int 变量,其中一个变量的值为零。在 try-catch 块中,我们创建了一个除以零的情况以引发 ArithmeticException。在 catch 块中,我们处理了 ArithmeticException,使用 getStackTrace() 方法从中检索 StackTraceElement 数组,然后在数组的第一个元素上使用 getLineNumber() 方法,打印行号。

package com.tutorialspoint;

public class StackTraceElementDemo {

   public static void main(String[] args) {

      // variables to store int values
      int a = 0, b = 1, c;

      try {
         // being divide by zero, this line will throw an ArithmeticException
         c = b / a;
      }catch(ArithmeticException e) {
         // get the array of StackTraceElement
         StackTraceElement[] stackTraceElements =  e.getStackTrace();
         // print the line number
         System.out.println(stackTraceElements[0].getLineNumber());
      }
   }
}  

输出

让我们编译并运行上述程序,这将产生以下结果:

12

示例:使用 Exception 的 StackTraceElement 获取行号

以下示例演示了 Java StackTraceElement getLineNumber() 方法的用法。在主方法中,我们创建了三个 int 变量,其中一个变量的值为零。在 try-catch 块中,我们创建了一个除以零的情况以引发 ArithmeticException。在 catch 块中,我们处理了 Exception,使用 getStackTrace() 方法从中检索 StackTraceElement 数组,然后在数组的第一个元素上使用 getLineNumber() 方法,打印行号。

package com.tutorialspoint;

public class StackTraceElementDemo {

   public static void main(String[] args) {

      // variables to store int values
      int a = 0, b = 1, c;

      try {
         // being divide by zero, this line will throw an ArithmeticException
         c = b / a;
      }catch(Exception e) {
         // get the array of StackTraceElement
         StackTraceElement[] stackTraceElements =  e.getStackTrace();
         // print the line number
         System.out.println(stackTraceElements[0].getLineNumber());
      }
   }
}  

输出

让我们编译并运行上述程序,这将产生以下结果:

12
java_lang_stacktraceelement.htm
广告