我刚刚了解了Gradle的FailureResolutionAware
哪些自定义异常可以实现,以便为用户提供有关如何解决构建错误的其他指导。
我无法让它为我工作......我有一个例外实现界面,但它似乎没有得到BuildExceptionReporter
(即方法)永远不会调用appendResolution()
。
有什么想法吗?这是我的自定义异常btw:
public class SomeFancyException extends GradleException implements FailureResolutionAware {
public SomeFancyException(String message) {
super(message);
}
@Override
public void appendResolution(StyledTextOutput output, BuildClientMetaData clientMetaData) {
output.text("Here is some fancy help for you!");
}
}
任何帮助高度赞赏: - )
答案 0 :(得分:2)
据我所知,在10分钟的调试会话中,您抛出的所有异常都会被捕获并包含在其他异常中。例如,当您在任务执行期间,在TaskExecutionException
中或在直接在脚本中或在配置任务期间将其丢弃时,在GradleScriptException
中抛出它。然后,此异常再次包含在LocationAwareException
中。这个LocationAwareException
是FailureResolutionAware
,如果它也是appendResolution
,则会将FailureResolutionAware
调用委托给其原因。但LocationAwareException
与您的异常之间的其他异常不会进一步委托此调用。所以我说这是一个纯粹的内部课程,你不应该也不能用自己的例外。