读书笔记——《Java核心技术 卷一》——异常

一、异常处理

程序出现了错误而没有捕获,那么线程将会直接结束。

Error类层次结构描述了Java云从是系统内部错误和资源耗尽错误。应用程序不应该抛出这种类型的对象。如果出现了这样的内部错误,只能够通告用户,并尽力使程序安全地终止。

RuntimeException:由程序本身错误导致的异常,

包含几种情况:

1、类型转换错误

2、数组访问越界

3、访问空指针

属于程序本身的错误,可以避免

和Error类型异常一起被称为未检查异常(没有认真检查才会发生的异常)

IOException:由I/O错误导致的异常,

包含几种情况:

1、试图在文件尾部后面读取数据

2、试图打开一个错误格式的URL

3、试图根据给定的字符串查找Class对象,但是字符串表示的类不存在

有可能是程序运行的环境或者传入错误的参数,具有偶然性,不能完全避免

被称为已检查异常(检查了也没用,还是可能发生)

方法应该在其首部生命所有可能抛出的异常,而不是所有异常

需要抛出异常的情况:

1、调用一个抛出以检查异常的方法

2、程序运行过程中发现错误,并且利用throw语句抛出一个已检查异常

3、程序出现错误,例如,a[-1]=0 会抛出一个ArrayIndexOutOfBoudsException这样的未检查异常

4、Java虚拟机和运行时库出现的内部异常

出现前两种情况之一,则必须告诉调用这个方法的程序员有可能抛出异常。对于可能被他人使用的Java方法,应该根据一场规范,在方法的首部声明这个方法可能抛出的异常。如果可能抛出多个异常,那就必须列出所有异常,用逗号分隔开。

一个方法必须声明所有可能抛出的已检查异常,Error不可控制,RuntimeException应该避免,都不用声明。

子类的异常范围必须比父类小,如果父类没有生命异常,那么子类也不能声明异常。

如果一个类中的一个方法声明将会抛出一个异常,而这个一场是某个特定的类的实例时,则这个方法就有可能抛出一个这个类的异常,或者这个类的任意一个子类的异常。

抛出异常:

1、找到一个合适的异常类

2、创建这个类的对象

3、将对象抛出

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

创建异常类只需要派生于Exception类或者Exception类的子类。

未完待续……

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值