gpt4 book ai didi

java - 使用特定消息捕获异常

转载 作者:搜寻专家 更新时间:2023-11-01 03:25:09 25 4
gpt4 key购买 nike

有没有更好的方法来捕获带有消息的特定异常然后执行此操作:

try{
methodThatWillProbablyThrowASocketException();
} catch(SocketException e){
if(e.getMessage().contains("reset")){
// the connection was reset
// will ignore
} else{
throw e;
}
}

例如,HttpStatusException 为我提供了方法 getStatusCode(),我可以在其中轻松比较错误状态是 404 还是 502,并且可以决定要做什么:

try{
methodThatWillProbablyThrowAHTTPException();
} catch(HttpStatusException e){
if(e.getStatusCode() == 404){
// not found, will not continue
}
if else(e.getStatusCode() == 502){
// server errror, try again
} else{
throw e;
}
}

大多数其他异常不给我探测方法,只给我消息。

所以我的问题是,这样做是否正确?与 String 比较?或者有更好的方法吗?

最佳答案

只做一件事。

  1. 收集您的项目可能发生的所有类型的异常。
  2. 通过扩展 Exception 创建一个单独的类。
  3. 重写 getCause() 方法。

http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html#getCause%28%29

公共(public) Throwable getCause()

为不同的异常定义你想要的代码,比如空指针 101 ,等等......

到处都使用那个类。因此,您只需编写一次异常,就可以在尽可能多的项目中使用。

在构建类之后,它将可以重用以满足您的所有需求

如果你有新的条件,只更新这个类,所有的事情都会完成

根据我的看法,这是一个更好的解决方案......

这样您就可以获得所需的功能。你必须自己做。

关于java - 使用特定消息捕获异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15944707/

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