Java Throwable setStackTrace()方法与示例

抛出类setStackTrace()方法

  • setStackTrace()方法在java.lang包中可用。

  • setStackTrace()方法用于设置将使用getStackTrace()方法检索的堆栈跟踪元素。

  • setStackTrace()方法是一种非静态方法,只能通过类对象访问,如果尝试使用类名称访问该方法,则会收到错误消息。

  • setStackTrace()方法在设置堆栈跟踪元素时可能会引发异常。
    NullPointerException-当给定参数为null或堆栈跟踪的任何现有元素为null时,可能引发此异常。

语法:

    public void setStackTrace(StackTraceElement[] st_tr);

参数:

  • StackTraceElement [] st_tr –表示“ StackTraceElement”的数组。

返回值:

该方法的返回类型为void,不返回任何内容。

示例

//Java程序演示示例 
//setStackTrace(StackTraceElement [] st_tr) 性
//Throwable方法 

public class SetStackTrace {
    public static void main(String args[]) {
        try {            stackTraceMethod();
        } catch (Throwable ex) {

            //通过使用getStackTrace()方法是获取
            //堆栈跟踪元素
            StackTraceElement[] st_tr = ex.getStackTrace();
            System.err.println("st_tr[0].toString()" + st_tr[0].toString());
        }
    }

    public static void stackTraceMethod() throws Throwable {
        int li_nu = 7;
        //实例化一个新的异常 
        //可投掷
        Throwable th = new Throwable("Raise New Exception");
        StackTraceElement[] st_tr = new StackTraceElement[] {
            new StackTraceElement("cl_na", "me_na", "fu_na", li_nu)
        };

        //通过使用setStackTrace()方法是设置
        //堆栈中的元素
        th.setStackTrace(st_tr);
        throw th;
    }
}

输出结果

st_tr[0].toString()cl_na.me_na(fu_na:7)