如何使FileOutputStream.close()自己抛出异常?

时间:2013-06-17 08:08:23

标签: java exception outputstream fileoutputstream

在Java中,FileOutputStream.close()可能会抛出IOException。 但我从来没有看到它发生过。 我怎么能产生这样的例外? 我需要制作这个。 谢谢。

3 个答案:

答案 0 :(得分:3)

如果它足够重要,请编写单元测试以涵盖该方案。

考虑使用像Mockito这样的模拟框架来模拟您需要的行为,而无需修改代码。例如,您可以通过执行以下操作让FileOutputStream抛出IOException

final FileOutputStream out = mock(FileOutputStream.class);
doThrow(new IOException()).when(out).close();

一旦你有了一个模拟FileOutputStream,你就可以将它传递给被测系统,例如:

myComponent.writeTo(out);

其余由您决定,例如,您的系统在这种情况下应如何表现等......

答案 1 :(得分:2)

如果您的目标是测试发生IOException时会发生什么:

throw new IOException("Custom Message about the exception");

这将模拟抛出的异常,这样您就可以看到应用程序发生这种情况时会发生什么。

答案 2 :(得分:2)

创建一个程序,将文件写入USB,让它在关闭文件之前暂停,取出USB并等待程序尝试关闭文件。