60
|
Thomas Owens · 技术社区 · 15 年前 |
![]() |
1
73
不。
下面是第二个案例的一个例子:
|
![]() |
2
7
简单测试包括
如果
在上述两种情况下,如果
更多细节 here (个人博客)。 |
![]() |
3
4
其他答案包括
也就是说,资源
下面是一些代码来证明“Try with Resources”语句中的资源也没有关闭。
我使用的是
然后我设置了调用的测试用例
输出:
因此,不仅如此
|
![]() |
4
3
无论发生什么,最终块都将被执行…即使try块抛出任何可丢弃的(异常或错误)…… 唯一不执行的case finally块是调用System.exit()方法..
它不会执行finally块。程序将终止 在System.Exit()语句之后。 |
![]() |
5
2
如果你认为这种行为有问题,你需要对你的
我正在考虑做的是包装
这个策略还有一个额外的“好处”,就是使这个逻辑可测试:要测试包含“主流”的方法是否确实请求系统退出,我们所要做的就是捕获一个可丢弃的,断言为写类型。例如,我们的业务逻辑包装器的测试可能如下所示:
这种策略的主要缺点是它是一种从异常流中获取功能的方法,这通常会产生意想不到的结果。在这种情况下,最明显的是你写的任何地方
总的来说,这对我来说似乎是一个很好的策略。这里还有人这么认为吗? |
![]() |
6
0
.
|