我正在使用mongo-java-driver-2.12.4
import com.mongodb.MongoClient;
import java.net.UnknownHostException;
class Test{
public static void main(String args[]){
try{
MongoClient mc = new MongoClient("hello",27110);
}catch(UnknownHostException e){
System.out.println("this is unknown");
}
System.out.println("whhaattt");
}
}
任何理智的人都会说这段代码的输出应为"这是未知的"。出于某种原因,这对我来说并不合适。它是" whhaattt"。为什么?我完全被难倒了。
编辑:所以"你好"已在内部网络上解决,但如果我使用不同的值,如1290310923809132代替"你好"仍然没有异常被抛出。但是,InetAddress.getByName()方法在运行时会抛出UnknownHostException。
答案 0 :(得分:1)
所以这实际上是一个错误!我将它提交给MongoDB bug跟踪器,他们说他们从2.12.x版本开始改变它;但是,他们没有删除“抛出UnknownHostException”存根。他们在javadoc中添加了一条注释,声明不再抛出异常......这意味着你可以拥有一个无效的MongoClient对象。删除此异常会破坏源兼容性 - >即使二进制兼容性也可以。