有没有抛出IO异常的情况?

时间:2014-03-11 15:46:45

标签: java exception io

我从未见过在java io操作期间抛出IO异常的任何示例。我每次都看到它被抓住了。对于所有实际目的而言,永远不需要抛出它是真的吗?如果我对前一个问题的回答是不真实的,那么现实生活中的情况是thrown吗?

2 个答案:

答案 0 :(得分:1)

嗯,是的,例如用户只是点击了" Show Orders"按钮,这是代码:

List<Order> orders = getOrdersFromDatabase();
showOrdersInTable(orders);

public List<Order> getOrdersFromDatabase() throws IOException {... }

不幸的是,一些愚蠢的家伙只是决定切断服务器的电源线以获得乐趣(好吧:他刚被解雇)。现在无法访问运行数据库的服务器。

您的代码可以:

  • 忽略该异常,您的应用程序将无声地失败而不知道发生了什么
  • 让异常传播到你的主程序而不会捕获它,你的应用程序会崩溃
  • 在适当的抽象层捕获并处理异常,您可以在其中记录错误的详细信息并警告用户:showPopup("Sorry, the server xyz can't be reach right now, do you want to retry or abort?");

答案 1 :(得分:1)

当你谈到IOException时,你也谈到了继承它的所有例外。例如,其中有FileNotFoundException(旧文件API - 沟渠),还有ReadOnlyFilesystemExceptionNotDirectoryExceptionAccessDeniedException等等(新文件API - 使用)。

因此,是的,事实上,IOException很多被抛出。