gpt4 book ai didi

java - 从异常部分重构公共(public)代码

转载 作者:行者123 更新时间:2023-12-01 07:58:48 25 4
gpt4 key购买 nike

我的代码中有重复的代码,所以我做错了什么,必须有更好的方法来做到这一点。我在 catch 部分有一组通用的语句。我不能将其放入finally block 中,因为这些仅针对异常情况完成。除了使用单独的方法来保存此代码之外,我还可以采取其他方法吗?

public MyResponseDto doSomeWork(MyRequestDto) {
....
String jsonStr = null;
try {
jsonStr = new ObjectMapper().writeValueAsString(MyRequestDto);
} catch (JsonGenerationException e) {
log.error(e.getMessage());
myResponseDto .setWorkDone(false);
myResponseDto .setErrorMessage(e.getMessage());
return myResponseDto ;
} catch (JsonMappingException e) {
log.error(e.getMessage());
myResponseDto .setWorkDone(false);
myResponseDto .setErrorMessage(e.getMessage());
return myResponseDto ;
} catch (IOException e) {
log.error(e.getMessage());
myResponseDto .setWorkDone(false);
myResponseDto .setErrorMessage(e.getMessage());
return myResponseDto ;
}

myResponseDto = postWorkRequest(jsonStr);
return myResponseDto ;

}

最佳答案

public MyResponseDto doSomeWork(MyRequestDto) {
....
String jsonStr = null;
try {
jsonStr = new ObjectMapper().writeValueAsString(MyRequestDto);
} catch (JsonGenerationException | JsonMappingException e) {
log.error(e.getMessage());
myResponseDto .setWorkDone(false);
myResponseDto .setErrorMessage(e.getMessage());
return myResponseDto ;
}
myResponseDto = postWorkRequest(jsonStr);
return myResponseDto ;
}

这就是在一次catch 中捕获多个异常的方法。剩下的你可以尝试一下,希望对你有帮助。当然,您可以在一次捕获中放置 2 个以上的异常!

编辑:请注意,这仅适用于 Java 7 或更高版本

关于java - 从异常部分重构公共(public)代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27022619/

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