5、异常与调试

1.        Throwable(Error, Exception(IOException,RuntimeException)):

1)      派生于RuntimeException的异常包含以下几种情况:错误的类型转换;数组越界访问;访问空指针

2)      不是派生于RuntimeException的异常包括:试图在文件尾部后面读取数据;试图打开一个错误格式的URL;试图根据字符串查找Class对象,而这个对象不存在

3)      派生于RuntimeException或Error类的所有异常称为“未检查异常”,其他异常称为“已检查异常”

4)      注意:如果出现RuntimeException异常,就一定是你的问题

2.        四种情况会抛出异常:

1)      调用一个抛出已检查异常的方法

2)      在程序过程中发现错误,并利用throws语句抛出一个已检查异常

3)      程序出现错误,如越界等未检查异常

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

3.        “异常规范”:如果一个方法可能抛出多个已检查异常,就必须在方法首部列出所有异常,并用逗号隔开;不需要声明java内部错误,就是从Error继承来的异常,我们对他们没有控制力;也不应该声明从RuntimeException继承的未检查异常。总之,一个方法必须声明所有可能的已检查异常,未检查异常要么不可控制(Error),要么应该避免他们发生(RuntimeException)

4.        捕获异常:程序将跳过try语句块中的其余代码,继续执行catch字句中的处理器代码;如果try语句中没有抛出异常,那么程序将跳过catch语句;如果任何代码跑出了一个在catch字句中没有声明的异常类型,那么该方法立即退出

5.        finally子句:(无论try语句块是否遇到异常,finally子句都会被执行)

1)      代码没有抛出异常,程序会先执行try中全部代码,然后执行finally子句的代码,随后继续执行try语句块后面的代码

2)      代码抛出一个在catch中捕获的异常,跳过try中剩余的代码,转而执行与该异常匹配的catch子句中的代码,最后执行finally子句中的代码;如果catch子句中没有抛出异常,程序将执行try语句块之后的第一条语句;如果catch子句抛出一个异常,异常将被抛回程序调用者处

3)      代码抛出一个异常,但是异常不是由catch子句捕获,程序将跳过try语句块中剩余代码,然后执行finally子句中的代码,并将异常抛给方法的调用者

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值