如何在Java注释处理过程中发生错误时打印堆栈跟踪
我正在开发一个有注释处理器的。为了捕获异常,我编写了类似于以下代码的代码:如何在Java注释处理过程中发生错误时打印堆栈跟踪,java,annotation-processing,annotation-processor,Java,Annotation Processing,Annotation Processor,我正在开发一个有注释处理器的。为了捕获异常,我编写了类似于以下代码的代码: public class KriptonProcessor extends AbstractProcessor { @Override public boolean process(final Set<? extends TypeElement> annotations, final RoundEnvironment roundEnv) { try { ...
public class KriptonProcessor extends AbstractProcessor {
@Override
public boolean process(final Set<? extends TypeElement> annotations, final RoundEnvironment roundEnv) {
try {
...
return true;
} catch (Throwable e) {
String msg = StringUtils.nvl(e.getMessage());
error(null, e.getClass().getCanonicalName() + ": " + msg);
e.printStackTrace();
}
return true;
}
}
虽然我希望得到完整的堆栈跟踪,但这对于检测问题的位置很有用。完成这项任务有什么想法吗
提前感谢。公共类KriptonProcessor扩展了AbstractProcessor{
public class KriptonProcessor extends AbstractProcessor {
@Override
public boolean process(final Set<? extends TypeElement> annotations, final RoundEnvironment roundEnv) {
try {
...
return true;
} catch (Throwable e) {
e.printStackTrace();
return false;
}
return true;
}
}
@凌驾
公共布尔进程(最终设置)您是否能够使用调试器在catch块中放置断点?您应该能够检查Throwable对象的内容以检查回溯。否,错误发生在编译时。断点在程序内工作。然后不会抛出Throwable
public class KriptonProcessor extends AbstractProcessor {
@Override
public boolean process(final Set<? extends TypeElement> annotations, final RoundEnvironment roundEnv) {
try {
...
return true;
} catch (Throwable e) {
e.printStackTrace();
return false;
}
return true;
}
}