gpt4 book ai didi

java - 在 catch block 中无法识别 UnknownHostException

转载 作者:搜寻专家 更新时间:2023-10-31 08:27:45 27 4
gpt4 key购买 nike

我的代码中的一个方法抛出 UnknownHostException 异常

我首先有一个像这样的 catch block :

catch (Exception e) {
// TODO Auto-generated catch block
System.out.println("Custom Message "+e.getMessage());
if(e instanceof java.net.UnknownHostException){
System.out.println("Unknown Host Ex");
}else{
System.out.println("OTHER ERROR");
}
}

我遇到了一个问题,即 if 条件永远不会计算为真,因此我无法输出主机错误。

你可以看到我有一个 sysout 就在打印这个之前:

Custom Message ; nested exception is: 
java.net.UnknownHostException: abc.xyz

之后我写了一个单独的 catch block 来处理 UnknownHostException 但它仍然没有被捕获。

最佳答案

好吧,显然你的 UnknownHostException 包裹在其他一些异常中。换句话说,上面的一些代码捕获了 UnknownHostException 并抛出:

throw new SomeOtherException("Custom Message", unknownHostEx);

打印 e.getClass() 以查看包装它的异常类型。您也可以尝试:

if(e.getCause() != null && e.getCause() instanceof UnknownHostException)

但是很丑。

顺便说一句,你应该避免使用 instanceof 并让 catch 自己找出异常(但它对你的情况没有帮助):

catch (java.net.UnknownHostException e) {
System.out.println("Unknown Host Ex");
}
catch (Exception e) {
System.out.println("OTHER ERROR");
}

关于java - 在 catch block 中无法识别 UnknownHostException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13525946/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com