gpt4 book ai didi

java - 在 try-catch block 中放入多少代码

转载 作者:太空狗 更新时间:2023-10-29 22:45:04 25 4
gpt4 key购买 nike

<分区>

是否有关于在 try/catch block 中放入多少代码的“最佳实践”?

我在下面发布了 3 种不同的场景。

我没有在每个 catch block 中包含行为,也没有包含 finally block 。这是为了提高观众的可读性。假设每个 catch 做不同的事情。并假设 finally 将关闭流。只是想为 future 的读者创建一个易于阅读的示例。

  1. 控制,没有try/catch
  2. 为每个需要的地方编写 1 个 try/catch
  3. 只有 1 个 try/catch 包围整个代码块的代码。

什么是公认的最佳实践,为什么?


场景一

没有try/catch的代码,只是为了控制。

    BufferedReader bufferedReader = new BufferedReader(new FileReader("somepath"));
String line;
while ((line = bufferedReader.readLine()) != null) {
Object object = new Object();
this.doSomething(object);
}
bufferedReader.close();

场景二

try/catch 代码块为每个需要的地方编写代码。

    BufferedReader bufferedReader = null;
try {
bufferedReader = new BufferedReader(new FileReader("somepath"));
} catch (FileNotFoundException e) {
e.printStackTrace();
}
String line;
try {
while ((line = bufferedReader.readLine()) != null) {
Object object = new Object();
this.doSomething(object);
}
} catch (IOException e) {
e.printStackTrace();
}
try {
bufferedReader.close();
} catch (IOException e) {
e.printStackTrace();
}

场景三

用 1 个 try/catch 包围整个代码块的代码。

    try {
BufferedReader bufferedReader = new BufferedReader(new FileReader("somepath"));
String line;
while ((line = bufferedReader.readLine()) != null) {
Object object = new Object();
this.doSomething(object);
}
bufferedReader.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}

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