Java异常


需要注意的是, 所有的异常都是由 Throwable 继承而来, 但在下一层立即分解为两个分

支 : Error 和 Exception :
Error 类层次结构描述了 Java 运行时系统的内部错误和资源耗尽错误 。 应用程序不应该
'
抛出这种类型的对象 。 如果出现了这样的内部错误, 除了通告给用户, 并尽力使程序安全地
终止之外 , 再也无能为力了 。 这种情况很少出现 。
在设计 Java 程序时 , 需要关注 Exception 层次结构 。 这个层次结构又分解为两个分支 :
一个分支派生于 RuntimeException ; 另一个分支包含其他异常。 划分两个分支的规则是 :
程序错误导致的异常属于 RuntimeException ; 而程序本身没有问题 , 但由于像 I / O 错误这类

问题导致的异常属于其他异常 。如果出现 RuntimeException 异常, 那么就一定是你的问题。

Java 语 言 规 范 将 派 生 于 Error 类 或 RuntimeException 类的所有异常称为非受查

( unchecked ) 异常 , 所有其他的异常称为受查 ( checked ) 异常

派生于 RuntimeException 的异常包含下面几种情况 :
• 错误的类型转换 。
• 数组访问越界
访问 null 指针
不是派生于 RuntimeException 的异常包括 :
• 试图在文件尾部后面读取数据。

• 试图打开一个不存在的文件 。

• 试图根据给定的字符串查找 Class 对象, 而这个字符串表示的类并不存在

声明受查异常

public FilelnputStream ( String name ) throws FileNotFoundException

在自己编写方法时 , 不必将所有可能抛出的异常都进行声明 。 至于什么时候需要在方法

中用 throws 子句声明异常 , 什么异常必须使用 throws 子句声明 , 需要记住在遇到下面 4 种
情况时应该抛出异常 :
1 ) 调用一个抛出受査异常的方法, 例如 , FilelnputStream 构造器 。
2 ) 程序运行过程中发现错误 , 并且利用 throw 语句抛出一个受查异常 ( 下一节将详细地
介绍 throw 语句 ) 。
3 ) 程序出现错误 , 例如, a [ -1] = 0 会抛出一个 ArraylndexOutOffloundsException 这样的

非受查异常 。

4 ) Java 虚拟机和运行时库出现的内部错误 。

总之, 一个方法必须声明所有可能抛出的受查异常 , 而非受查异常要么不可控制 ( Error ),
要么就应该避免发生 ( RuntimeException ) 。 如果方法没有声明所有可能发生的受查异常 , 编

译器就会发出一个错误消息 。

如何抛出异常

throw new EOFException( ) ;
或者
EOFException e = new EOFException( );

throw e;

一旦方法抛出了异常, 这个方法就不可能返回到调用者 。


捕获异常

如果在 try 语句块中的任何代码抛出了一个在 catch 子句中说明的异常类, 那么

1 ) 程序将跳过 try 语句块的其余代码 。
2 ) 程序将执行 catch 子句中的处理器代码 。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值