java.io.IOException
似乎是最常见的异常类型,巧合的是,它似乎也是最含糊不清的。无论何时使用套接字,文件,& c,我都会看到throws IOException
。然而,我从来没有真正对我开过一枪,所以我想知道那是什么原因会引发异常。该文档对解释发生的事情没有多大帮助:Java - 抛出IOException异常
表示发生某种I/O异常。该类是由失败或中断的I/O操作产生的常规异常类。
有人可以请解释一些IOException将被抛出的实例,或者它应该如何使用。
java.io.IOException
似乎是最常见的异常类型,巧合的是,它似乎也是最含糊不清的。无论何时使用套接字,文件,& c,我都会看到throws IOException
。然而,我从来没有真正对我开过一枪,所以我想知道那是什么原因会引发异常。该文档对解释发生的事情没有多大帮助:Java - 抛出IOException异常
表示发生某种I/O异常。该类是由失败或中断的I/O操作产生的常规异常类。
有人可以请解释一些IOException将被抛出的实例,或者它应该如何使用。
假设你:
还有更多的例子,但这些是最常见的,以我的经验。
通常,I/O表示输入或输出。只要输入或输出操作失败或解释,这些方法就会抛出IOException
。请注意,这不会因读取或写入内存而抛出,因为Java将自动处理它。
这里有一些导致IOException
的情况。
Java文档有助于了解特定IOException
才有根本原因看文档页面IOException
的direct known sub-interfaces
:
ChangedCharSetException, CharacterCodingException, CharConversionException, ClosedChannelException, EOFException, FileLockInterruptionException, FileNotFoundException, FilerException, FileSystemException, HttpRetryException, IIOException, InterruptedByTimeoutException, InterruptedIOException, InvalidPropertiesFormatException, JMXProviderException, JMXServerErrorException, MalformedURLException, ObjectStreamException, ProtocolException, RemoteException, SaslException, SocketException, SSLException, SyncFailedException, UnknownHostException, UnknownServiceException, UnsupportedDataTypeException, UnsupportedEncodingException, UserPrincipalNotFoundException, UTFDataFormatException, ZipException
这些例外中的大多数都是不言自明的。
很少IOExceptions
与根源:
EOFException:该文件或流的端部的端部已被输入过程中意外到达信号。该异常主要由数据输入流用于信号流结束
SocketException:抛出以指示创建或访问套接字时发生错误。
RemoteException:RemoteException是在执行远程方法调用期间可能发生的一些通信相关异常的公共超类。远程接口的每个方法(扩展了java.rmi.Remote的接口)必须在其throws子句中列出RemoteException。
UnknownHostException:抛出以指示无法确定主机的IP地址。 (您可能无法连接到互联网)
MalformedURLException:抛出以表明发生了格式错误的URL。在规范字符串中找不到合法协议,或者无法解析字符串。
'IOException'就是这样一个输入或输出异常。当人们使用它们时,它们通常只是概括更具体的错误。 [API](http://docs.oracle.com/javase/6/docs/api/java/io/IOException.html)列出了内置于Java SE 6中的所有不同类型的IO异常。 – Jon
我知道什么是IOException,我只是想要一些能够更全面地描述它们何时发生的场景。 – Zaq