0

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

4

3 回答 3

3

如果它足够重要,请编写一个单元测试来涵盖该场景。

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

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

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

myComponent.writeTo(out);

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

于 2013-06-17T12:57:35.487 回答
2

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

于 2013-06-17T08:33:18.797 回答
2

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

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

这将模拟抛出的异常,以便您可以看到发生此类事情时应用程序中发生的情况。

于 2013-06-17T08:14:05.837 回答