Java getStacktrace()、setStackTrace()的用途是什么?我无法理解此函数需要什么?
我无法理解这个代码。。我很清楚语法,但是为什么使用Java getStacktrace()、setStackTrace()的用途是什么?我无法理解此函数需要什么?,java,exception-handling,Java,Exception Handling,我无法理解这个代码。。我很清楚语法,但是为什么使用getStackTrace()和setStackTrace()?我的意思是我想知道它在真实场景中的实现是什么?i、 例如,该代码的期望输出是什么 package stackTrace; class a { public void fun() { try { findexception(); } catch (Exception e) { StackTrac
getStackTrace()
和setStackTrace()
?我的意思是我想知道它在真实场景中的实现是什么?i、 例如,该代码的期望输出是什么
package stackTrace;
class a {
public void fun() {
try {
findexception();
} catch (Exception e) {
StackTraceElement[] x = e.getStackTrace();
System.err.println(x[1].toString());
}
}
public void findexception() throws Exception {
// int i=0;
Exception ex = new Exception();
StackTraceElement[] y = new StackTraceElement[2];
y[0] = new StackTraceElement("class0", "method0", "type0", 0);
y[1] = new StackTraceElement("class1", "method1", "type1", 1);
ex.setStackTrace(y);
ex.printStackTrace();
throw ex;
}
}
public class stackTrace {
public static void main(String[] args) {
a obj = new a();
obj.fun();
}
}
其主要思想是针对您的用例定制堆栈跟踪(使用堆栈跟踪中需要的一些额外信息定制错误处理),例如: Throwable类的setStackTrace(StackTraceeElement[]stackTrace)方法用于将堆栈跟踪元素设置到此Throwable对象,此堆栈跟踪将由getStackTrace()返回,并由printStackTrace()和相关方法打印。 此方法允许用户覆盖默认堆栈跟踪,默认堆栈跟踪在构造throwable时由fillInStackTrace()生成,或在从序列化流读取throwable时反序列化