Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 是否有过引发IO异常的情况?_Java_Exception_Io - Fatal编程技术网

Java 是否有过引发IO异常的情况?

Java 是否有过引发IO异常的情况?,java,exception,io,Java,Exception,Io,我从未见过任何在java IO操作期间引发IO异常的示例。每次我都看到它被抓住。就所有实际目的而言,它真的不需要扔掉吗?如果我对上一个问题的回答是不真实的,那么在哪个真实场景下它会被抛出?是的,比如说,一个用户刚刚点击了“显示订单”按钮,下面是代码: List<Order> orders = getOrdersFromDatabase(); showOrdersInTable(orders); public List<Order> getOrdersFromDataba

我从未见过任何在java IO操作期间引发IO异常的示例。每次我都看到它被抓住。就所有实际目的而言,它真的不需要扔掉吗?如果我对上一个问题的回答是不真实的,那么在哪个真实场景下它会被抛出?

是的,比如说,一个用户刚刚点击了“显示订单”按钮,下面是代码:

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

public List<Order> getOrdersFromDatabase() throws IOException {... }
List orders=getOrdersFromDatabase();
ShowOrdersTable(订单);
公共列表getOrdersFromDatabase()引发IOException{…}
不幸的是,某个愚蠢的家伙为了好玩而决定切断服务器的电源线(好吧:他刚刚被解雇了)。现在无法访问运行数据库的服务器

您的代码可以是:

  • 忽略该异常,您的应用程序将在没有任何人知道发生了什么的情况下无声地失败
  • 让异常传播到main而不捕获它,应用程序将严重崩溃
  • 在适当的抽象层捕获并处理异常,您可以在其中记录错误的详细信息并警告用户:
    showPopup(“对不起,现在无法访问服务器xyz,您想重试还是中止?”)

当你谈论
IOException
时,你也会谈论它所包含的所有异常。例如,其中有
FileNotFoundException
(旧文件API--ditch),但也有
ReadOnlyFilesystemException
NotDirectoryException
accessdeniedeexception
等(新文件API--use)


因此,是的,实际上抛出了大量的
IOException
s。

磁盘故障、FS损坏等。。。不可能!你真的没见过IO异常吗?您从未尝试写入不存在的文件,或与远程套接字的连接使您的写入意外中断?这对我来说似乎很有趣,因为我觉得我刚开始上大学的OOP课程时,我就遇到了它们。你真的没见过IO例外吗?我见过它,但看到它被抓,而不是被扔我不明白区别。。。对于抛出的异常,您所做的是irelevent,事实是必须抛出它才能捕获它。除非您的意思是您只看到了catch语句,但在运行时却无法访问它们。。在这种情况下,我建议尝试写入一个被另一个进程锁定的文件,或者写入一个不存在的文件。