以下是一个示例应用,在Foo.main()
处抛出错误:
public class Foo {
public static void main(String args[]) {
try {
throw new RuntimeException();
} catch (Exception e) {
for (StackTraceElement elem : e.getStackTrace())
System.out.println(elem);
System.exit(-1);
}
}
}
这是输出:
Foo.main(Foo.java:5)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
java.lang.reflect.Method.invoke(Method.java:483)
com.intellij.rt.execution.application.AppMain.main(AppMain.java:134)
假设我并不关心最后五个StackTraceElement
个对象。
有没有一种简单的方法来过滤掉我的项目中没有编译的那些?
答案 0 :(得分:1)
从评论中提取(duffymo' s和我的)
选择一个唯一的top-level包名称。例子将是
com.yourcompany
或com.productname
...等
在异常处理例程中,检查包是否以包开头 你的模式。