强制javac运行处理器

时间:2014-07-31 13:29:51

标签: annotations javac annotation-processing

当AFAIK在一个处理器内报告某些错误时,其他错误将无法运行。 有没有办法强制独立处理?

1 个答案:

答案 0 :(得分:0)

根据documentation,只有未被捕获的错误或例外会停止进一步处理:

  

如果处理器抛出未捕获的异常,该工具可能会停止其他活动的注释处理器。 [...]由于注释处理器在协作环境中运行,因此处理器应仅在没有错误恢复或报告可行的情况下抛出未捕获的异常。

如果处理器报告错误,errorRaised()方法应在下一轮返回true但不停止处理:

  

打印出错类型的邮件会引发错误。

  

如果处理器引发错误,则当前轮次将运行至完成,后续轮次将指示出现错误。

它说"工具可以停止其他活动注释处理器" (重点补充)。因此,即使遇到未捕获的异常,如果您需要继续进行,也应该使用正确的处理工具。我不知道是否有任何工具可以支持这一点。如果您需要此功能,至少应该是处理工具。