Java异常发生原因_关于异常:Java – 抛出IOException的原因

java.io.IOException似乎是最常见的例外类型,巧合的是,它似乎也是最模糊的。 每当使用套接字,文件和c编写时,我都会看到throws IOException。 然而,我从来没有真正对我开枪,所以我想知道是什么原本应该解雇这个例外。 该文档对解释正在发生的事情没有多大帮助:

Signals that an I/O exception of some sort has occurred. This class is the general class of exceptions produced by failed or interrupted I/O operations.

有人可以解释一些抛出IOException的实例,或者它应该如何被利用。

IOException就是输入或输出异常。 当人们使用它们时,它们通常只是推广更具体的错误。 API包含Java SE 6中内置的所有不同类型的IO异常的列表。

我知道什么是IOException,我只是想要一些可以在它们发生时更充分地描述的场景。

假设你是:

读取网络文件并断开连接。

读取不再可用的本地文件。

使用某些流来读取数据,其他一些进程关闭了流。

尝试读取/写入文件但没有权限。

尝试写入文件但磁盘空间不再可用。

还有更多的例子,但根据我的经验,这些是最常见的。

对于4号,那么什么是SecurityException?

通常,I / O表示输入或输出。只要输入或输出操作失败或解释,这些方法就会抛出IOException。请注意,读取或写入内存时不会抛出此内容,因为Java会自动处理它。

以下是导致IOException的一些情况。

从封闭的输入流中读取

尝试在没有网络连接的情况下访问互联网上的文件

Java文档有助于了解特定IOException的根本原因

只需查看文档页面中的IOException IOException:

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:抛出此异常表示创建或访问Socket时出错。

RemoteException:RemoteException是执行远程方法调用期间可能发生的许多与通信相关的异常的公共超类。远程接口的每个方法(扩展java.rmi.Remote的接口)必须在其throws子句中列出RemoteException。

UnknownHostException:抛出此异常表示无法确定主机的IP地址。 (您可能没有连接到互联网)

MalformedURLException:抛出以指示发生了格式错误的URL。要么在规范字符串中找不到合法的协议,要么无法解析字符串。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值