java之异常处理机制(知识能力有限,如有不足请指出,谢谢!)

异常的分类:(Error和Exception)
Java中异常都来自于Throwable类的子类,主要有两个级别,一个是Error级别,另一个是Exception级别。
Error的特点
  1)Error是不可被控制的(unchecked);
  2)Error用于表示系统级别的错误或者底层资源的错误;
  3)如果要想处理Error,应该在 系统的层面 进行捕捉。

Exception的特点
  1)可被控制(checked) 或不可控制的(unchecked);
  2)由程序员导致的错误;
  3)异常都可以在 应用程序层面 进行处理。

家族图谱如下图

Exception的分类:(必须检查(Checked exception)和不必须检查(Unchecked exception))
异常Exception是可以在应用层面进行捕获或者抛出的。异常也根据检查的的强弱可以分为 必须检查 (Checked exception)和 不必须检查 (Unchecked exception)两种;根据JVM对异常检查的阶段也分别称为编译时检查异常,运行时检查异常。

编译时检查异常 :是Exception的子类,这种异常必须要求在编译的时候进行检查处理否则无法编译。

运行时异常 :是RuntimeException的子类,这种异常无需在编译阶段检查,在程序运行的过程中再进行检查的。(例如: 数组下标越界,空指针异常,变量类型进行转换时,类型不符等

例如:
int   num=Integer.parseInt("abc");

在编译的时候是能够编译通过,而在运行的时候会给出报错信息,这种异常称为运行时检查异常
throw 和throws的区别:
声明方法需要检查 使用 throws------------即:在方法名后面声明
用在方法体内部 的使用 throw

注意:
finally 经常用于一些清理的工作,因为它是一定会被执行的,在return 的前一步执行,不管是否已经return 都会被执行。

使用异常处理机制的建议:
1.要避免使用异常处理答题错误处理,这样会降低程序的清晰性,并且效率低下。
2.处理异常不可代替简单测试----只在异常情况下使用异常机制。
3.不要小颗粒度的异常处理---应该将整个任务包装在一个Try语句中
4.异常往往在高层(调用者)处理。

总结:
------->1.一个图(上图有)
------->2.五个关键字(try catch finally,throws,throw)
------->3.先逮小的,再逮大的(即:若存在继承关系,先catch 子类)
------->4.异常和重写的关系(子类重写父类时,声明的范围不能超过父类)
-------->5.自定义异常
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值