为什么javax.tools.ToolProvider.getSystemTool(…)会以最宽的错误类而不是ServiceConfigurationError重新调用?

为什么javax.tools.ToolProvider.getSystemTool(…)会以最宽的错误类而不是ServiceConfigurationError重新调用?,java,error-handling,rethrow,Java,Error Handling,Rethrow,方法javax.tools.ToolProvider.getSystemTool(类clazz,字符串moduleName,字符串className)具有以下主体(JDK 12): private static T getSystemTool(类clazz、字符串moduleName、字符串className){ 试一试{ ServiceLoader sl=ServiceLoader.load(clazz,ClassLoader.getSystemClassLoader()); for(迭代器i

方法javax.tools.ToolProvider.getSystemTool(类clazz,字符串moduleName,字符串className)具有以下主体(JDK 12):

private static T getSystemTool(类clazz、字符串moduleName、字符串className){
试一试{
ServiceLoader sl=ServiceLoader.load(clazz,ClassLoader.getSystemClassLoader());
for(迭代器iter=sl.Iterator();iter.hasNext();){
T工具=iter.next();
如果(匹配(工具,模块名称))
返回工具;
}
}捕获(ServiceConfigurationError e){
抛出新错误(e);
}
返回null;
}
我不明白为什么作者使用了最广泛的错误类而不是像抛出新工具ProviderError(e)或者甚至不重新抛出这样的东西?如果不深入挖掘异常链,任何带有广泛错误类的重试都无助于理解这里发生了什么