Java HTable.get(List<;get>;)是否可以在返回的数组中放置空引用?

Java HTable.get(List<;get>;)是否可以在返回的数组中放置空引用?,java,exception,hadoop,hbase,Java,Exception,Hadoop,Hbase,HBase Javadoc对于HTable.get(List)方法来说非常混乱 作为返回参数文档,我们有以下语句: If there are any failures even after retries, there will be a null in the results array for those Gets, AND an exception will be thrown. 如果重试后仍有任何故障, 对于这些GET,结果数组中将有一个null, 并且将抛出一个异常。 我不理解“AND

HBase Javadoc对于HTable.get(List)方法来说非常混乱

作为返回参数文档,我们有以下语句:

If there are any failures even after retries, there will be a null in the results array for those Gets, AND an exception will be thrown. 如果重试后仍有任何故障, 对于这些GET,结果数组中将有一个null, 并且将抛出一个异常。 我不理解“AND”:我们可以在返回的数组中有一个异常或一个null,而不是像文档所暗示的那样同时有两个

我从来没有听说过一个Java方法既能引发异常又能返回某些东西


调用此方法时,我会在代码中处理异常,但我是否还需要担心结果数组中的空引用?

此处的文档具有误导性,因为此函数在失败时不会返回结果并同时抛出错误

我把它挖出来是因为我也很困惑

以下是此功能的主要功能:

/**{@inheritDoc}*/
@凌驾
公共结果[]获取(列表获取)引发IOException{
LOG.trace(“获取(列表)”;
先决条件。checkNotNull(获取);
if(get.isEmpty()){
返回新结果[0];
}else if(get.size()==1){
试一试{
返回新结果[]{get(get.get(0))};
}捕获(IOE异常){
抛出CreateRetriesHaustedWithDetailsException(e,gets.get(0));
}
}否则{
try(Scope=TRACER.spanBuilder(“BigtableTable.get”).startScopedSpan(){
AddBatchSizeAnotation(gets);
返回getBatchExecutor().batch(获取);
}
}
}
好的,如果一个列表包含多个项目,它调用,该函数的定义如下:

公共结果[]批(列表