printStackTrace看名字也能看得出来,这个是得到一个错误的追踪信息,从出错的位置一直可以追溯到main函数,这样你就可以更清楚的知道你的代码到底是如何出错的,并不是简单的一个出错信息,而getMessage是得到这个出错信息的具体内容,比如是什么错误!
getStackTrace() 它位于Throwable类中。getStackTrace() 返回Throwable对象被创建时所创建的StackTraceElement对象的一个数组。查询这些StackTraceElements可以准确地找出错误发生在什么地方。
对于调用getStackTrace() 时被调用的每个方法,返回的数组包含与它们相应的一个元素,另外返回的数组还包含一个元素来表明发出调用的代码。数组的第一个元素指出抛出最初异常的方法。要想获取你需要的信息,只要简单地调用适当的方法。
下面是说明getStackTrace() 用法的一个例子:
public class StackTraceTip {
public static void main(String args[]) {
StackTraceTip s = new StackTraceTip();
try {
s.foo(Integer.parseInt(args[0]));
}
catch (Exception e) {
Throwable t = getRootCause(e);
// print out root cause and handled exception for
// comparison
System.out.println(e);
System.out.println(t);
StackTraceElement []trace = t.getStackTrace();
StackTraceElementste = trace[0];
System.err.println("error occurred in method: " +
ste.getMethodName());
System.err.println(" file: " +
ste.getFileName());
System.err.println(" line number: " +
ste.getLineNumber());
}
}
public void foo(int y) {
if ( y > 1 ) {
throw new IllegalArgumentException("invalid value: " + y);
}
try {
bar(y);
}
catch (IllegalArgumentException e) {
throw new RuntimeException("bar threw error", e);
}
}
public void bar(int x) {
if ( x < 1 ) {
throw new IllegalArgumentException("invalid value: " + x);
}
}
public static ThrowablegetRootCause(Exception e) {
Throwable root = e;
while (root.getCause() != null) {
root = root.getCause();
}
return root;
}
}
以上为百科题库网整理的关于"列有关排便性质异常的描述哪项是错误的"试题答案及解析,如想学习更多生物类竞赛题,欢迎访问www.baiketk.com查看搜索更多相关信息。
转载请注明:百科题库网https://www.baiketk.com/q_p5fe5a23c16c3d.html
相关题目推荐