gpt4 book ai didi

java - 如何正确重构 Java 方法以进行正确的错误处理

转载 作者:行者123 更新时间:2023-11-29 05:02:39 24 4
gpt4 key购买 nike

我有一个现有的 Java 方法,我不确定如何正确重构。我希望始终调用 finally 子句,但是一些调用者需要知道何时抛出异常,以便他们可以做一些额外的内务处理。

该方法应该保持如下所示,还是我删除所有 catch 子句并抛出它们?有没有其他方法来处理这个问题?

更新:抱歉,忘了说,我必须使用 Java 版本 6

我认为 finally 子句在没有伴随捕获的情况下有点不正统,但不确定正确的方法。

public static final synchronized String getContents(File file) {
StringBuilder builder = null;
Reader reader = null;
try {
builder = new StringBuilder();
reader = new InputStreamReader(new FileInputStream(file));
int data;
while((data = reader.read()) != -1) {
builder.append((char)data);
}
}
catch (IOException e) {
throw new RuntimeException("IO Exception: " + e.getMessage(), e);
}
finally {
try {
reader.close();
}
catch (IOException e) {
throw new RuntimeException("IO Exception: " + e.getMessage(), e);
}
}
return builder.toString();
}

最佳答案

不需要 catch block 来使用try ... finally。嵌套异常更难阅读,所以我将它们排除在外。

关于java - 如何正确重构 Java 方法以进行正确的错误处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31541990/

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