|
|
1
51
这是正确的IDOM(并且工作正常):
这样做很好的原因是,如果最终代码本身没有引发异常或以其他方式异常终止,那么在最终代码完成后,最终到达最终位置之前引发的异常将被抛出。 编辑:对于Java 7(和Android SDK 19—KITKAT),现在尝试使用资源语法来使这个更干净。如何处理这一点在 this question . |
|
|
2
32
您可以实现一个实用方法:
然后您的代码将被简化为:
附加的 我想在第三方开放源码库中会有这样的方法。但是,我的首选是避免不必要的库依赖性,除非我使用了它的大部分功能。因此,我倾向于自己实现像这样的简单实用方法。 |
|
|
3
18
请记住,打开流可能会引发异常,因此您确实需要
结果是
由于Java SE 7,您可以使用尝试资源来避免这么多的缩进。它或多或少地做同样的事情,尽管有抑制异常隐藏起来。
您可能需要使用 Execute Around idiom .
我认为复制的标准好方法是使用NIO
|
|
|
4
8
Guava 有非常好的IO API,不需要这样做。例如,您的示例是:
一般来说,它使用
此外,它还有
它中的IO内容仍然是beta版本,可能会发生变化,但是它值得检查甚至使用,这取决于你正在做什么。 |
|
|
5
7
我坚信,在Java 7中,不再需要显式地关闭流。 Language Features in Java 7
|
|
|
6
6
自从
爪哇7
有一种更好的方法来编写Try Finally块
现在,您可以在
他们就要关门了
自动地
代码块完成后。没有必要
一个例子 :
之后
|
|
|
8
2
我有时使用的一个技巧是定义一个方法
Java 7的情况可能会有所改善。报告是它将有一个新的构造,它提供了一种更简洁的处理托管资源的方法;例如,当流完成时需要关闭的流。
最后,您应该知道您的示例有一个bug。如果方法调用打开第二个流,则不会关闭第一个流。第二次打开需要在
|
|
|
9
1
在大多数情况下,“in”close()异常是不相关的,因此:
吞下例外通常是不好的做法,但在这种情况下,我认为没关系。 |
|
|
10
0
使用
简单而优雅。 |
|
|
11
0
希望这是我的答案 好得多 https://stackoverflow.com/a/35623998/2585433
|
|
|
12
-2
在C语言中,有
我认为这是Java的Rest-Boad块的一种简短形式。Java 6引入了可关闭的接口。所以,
|
|
|
lfox · 如果列中不存在某个值,则停止代码执行 4 年前 |
|
juztcode · 在C++中尝试捕获-创建了多少个对象 8 年前 |
|
|
Novic · 结果不明确时如何使用tryCatch 8 年前 |
|
|
Jacob Nelson · 多次尝试表达式,直到在R中成功 8 年前 |
|
|
Mert Yücel · 如何在布尔方法中引发三个异常? 8 年前 |
|
|
Jatt · 捕获从setInterval内部引发的异常 8 年前 |