在java中,有一个很重要的特性就是安全性。因为java本身对安全性的要求是非常高的。
那么java的安全性主要体现就是java的异常结构了。
java的异常组要分为三种
checked exception(受检)
unchecked exception(非受检)
error(错误)
三种异常的最大父类是Throwable
checked exception代表这个异常在客户端是不可以忽略的,在调用端必须是放在try{}语句里面
而unchecked exception代表这个异常是可以忽略的,一旦发生异常,则代表是一个致命的错误,程序会直接退出
error代表程序出现了错误
那么我们改如何进行选择呢?
有一个指导性的原则就是:如果客户端可以根据抛出的异常进行程序的恢复,使用checked exception;如果是程序发生了致命错误,可以直接使用unchecked exception;
使用的时候,我们需要注意什么呢?
1,尽可能的使用jdk的通用异常
2,不可以吞噬异常
下面就是一个吞噬异常的例子
try{
throw new Exception("sample");
}catch(Exception e){
// do nothing
}
这样子会导致程序出现错误了,但是却无法找到错误的根源,将会该程序的调试已经阅读带有很大的麻烦。
3,什么时候该捕获异常?
建议:只有在程序明确如何处理异常的时候,才进行异常的处理,否则就应该将异常往外抛