Java异常机制

Java采用面向对象的方式来处理异常,处理过程分为两步。
抛出异常:在执行一个方式时,如果发生异常,则这个方法生成代表该异常的一个对象,停止当前执行路径,并把异常对象交给JRE.
捕获异常:JRE得到该异常后,寻找相应的代码来处理该异常。JRE在方法的调用栈中查找,从生成异常的方法开始回溯,直到找到响应的异常处理代码为止。


 
所有的异常都是派生于Throwable类的一个实例。
Exception
1.可以是可被控制(checked) 或不可控制的(unchecked)
2.表示一个由程序员导致的错误
3.应该在应用程序级被处理。
Error
1.总是不可控制的(unchecked)
2.经常用来用于表示系统错误或低层资源的错误
3.如何可能的话,应该在系统级被捕捉。
Java中的异常分为两类:
Checked exception指的是编译器会检查的Exception,是JDK强制需要catch的异常,如果不catch这个异常,那么编译器就会报错,比如说我们读写文件的时候会catch IOException,执行数据库操作会catch SQLException等 。
 
UnChecked Exception包含RuntimeException和Error,也就是说运行时的异常,这种异常不是必须需要catch的,是无法预料的,比如说在调用一个list.szie()的时候,如果这个list为null,那么就会报NUllPointerException,而这个异常就是RuntimeException,也就是UnChecked Exception。Error 表示恢复不是不可能但很困难的情况下的一种严重问题。比如说内存溢出。不可能指望程序能处理这样的情况。RuntimeException编译器无法检查,而且出现的比较频繁。
 
异常采用向上抛出机制进行处理,如果子类可能产生A异常,那么在父类中也必须throws A异常。可能导致的问题:代码效率低,耦合度过高。
 
注意事项
不要使用异常代替错误处理,这样会降低效率。
不要进行小粒度的异常处理,尽量将所有可能抛出异常的语句包装在一个try里边以提高运行效率。
底层抛出异常,高层处理异常。 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值