Java之异常处理

一.异常在是什么

        在java中,将程序执行过程中发生的不正常行为成为异常,在我们之前写过的代码中经常遇到的异常比如:空指针异常,数组越界异常,算数异常.

二.异常的体系结构

        

 从图中可以看出Throwable派生出两个子类:Exception和Error.

很多人可能会产生疑问这两个有什么区别呢?

在程序中:Error是java虚拟机无法解决的严重性问题,我们常见到的就是jvm的内部错误,资源耗尽等错误.这主要是程序员的逻辑问题造成的,一旦发生就无力回天.

                Exception是异常产生后程序员可以通过代码进行处理,程序继续执行.

三.异常的分类

       1.编译时异常:在编译时发生的异常,称之为编译时异常,也称为受检查异常

此时编译器已经报出错误.

 2.运行时异常:在程序运行期间发生的异常,也称为非受查异常.RunTimeException以及其子类对应的异常都成为运行时异常

注意:程序中关键字拼写错误不属于异常,而是一种语法错误.

四.异常的捕捉(throws,try-catch,finally)

        1.异常声明throws

                在方法声明时参数列表之后,当方法中抛出异常时,用户不想处理该异常,此时就可以用throws将异常抛给方法的调用者来处理.当前方法不处理此异常,提醒方法的调用者来处理此异常.

2.使用try-catch进行捕捉和处理

        基本语法:

try {
	// 可能出现异常的代码块
} catch (Exception e) {
	// 对Exception的处理,可以打印异常,也可以做一些别的事情
}finally {
	// 无论成功与否都会执行的代码块,一般用于资源的释放
}

注意:如果catch捕捉到了try抛出的异常,正常处理了就会跳出try-catch结构,进而执行后面的代码

还有就是如果Exception写在了前面,后面继承Exception的子类就不会执行,如果要写就要写在后面.

如果非要写Exception就写在最后面.

try-catch注意事项:

1.try块内抛出异常之后不会被执行了

2.如果抛出的异常类型与catch时异常类不匹配,异常就不会捕捉成功,也不会被处理,如果还一直抛异常,就会被JVM处理掉

3.try可能抛出多个不同的异常对象,则必须使用多个catch来捕获

 3.finally的使用

      在程序中,有些特定的代码是否发生异常,都需要被执行,此时就需要finally来解决这个问题.

 finally最大的用处就是用于资源的释放

 以上就是我对异常的理解,如有错误望大家指出.

 

 

 

        

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值