Java StackTraceElement isNativeMethod() Method



Description

The java StackTraceElement isNativeMethod() method returns true if the method containing the execution point represented by this stack trace element is a native method.

Declaration

Following is the declaration for Java StackTraceElement isNativeMethod() method

public boolean isNativeMethod()

Parameters

NA

Return Value

This method returns true if the method containing the execution point represented by this stack trace element is a native method.

Exception

NA

Example: Getting Current Thread Native Method status using StackTraceElement

The following example shows the usage of Java StackTraceElement isNativeMethod() method. In this program, we've defined a function named function2() which gets the native method status from StackTraceElement of current thread. Another function named function1() is used to instantiate the StackTraceElementDemo class and call the function2() method. In main method, we've called the function1() method and result is printed.

package com.tutorialspoint;

import java.lang.*;

public class StackTraceElementDemo {

   public static void main(String[] args) {
      function1();
   }

   public static void function1() {
      new StackTraceElementDemo().function2();
   }

   public void function2() {
      int i;  
      System.out.println("Is Native method ? :");

      // print stack trace
      for(i = 1 ; i < 3 ; i++ ) {
         System.out.println(Thread.currentThread().getStackTrace()[i].isNativeMethod());
      }
   }
}

Output

Let us compile and run the above program, this will produce the following result −

Is Native method ? :
false
false

Example: Checking Native Method Status using ArithmeticException's StackTraceElement

The following example shows the usage of Java StackTraceElement isNativeMethod() method. In main method, we've created three int variables where one variable is carrying zero value. In try-catch block, we've created a divide by zero scenario to raise an ArithmeticException. In catch block, we've handled the ArithmeticException, retrieved an array of StackTraceElement from it using getStackTrace() method and then using isNativeMethod() method on first element of the array, the status of method as native is printed.

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 native status
         System.out.println(stackTraceElements[0].isNativeMethod());
      }
   }
}  

Output

Let us compile and run the above program, this will produce the following result −

false

Example: Checking Native Method Status using Exception's StackTraceElement

The following example shows the usage of Java StackTraceElement isNativeMethod() method. In main method, we've created three int variables where one variable is carrying zero value. In try-catch block, we've created a divide by zero scenario to raise an ArithmeticException. In catch block, we've handled the Exception, retrieved an array of StackTraceElement from it using getStackTrace() method and then using isNativeMethod() method on first element of the array, the status of method as native is printed.

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 native status
         System.out.println(stackTraceElements[0].isNativeMethod());
      }
   }
}  

Output

Let us compile and run the above program, this will produce the following result −

false
java_lang_stacktraceelement.htm
Advertisements