1.什么是异常
java异常是java提供一种识别和响应错误的一致性机制。
Throwable类是所有异常的父类
Throwable类以下分为两大异常类型:Error和exception
Error类:程序无法处理的错误,表面运行应用程序中出现了严重的错误。
Exception:程序本身可以捕获并且可以处理的异常。Exception 这种异常又分为两类:运行时异常和编译时异常。
运行时异常:RuntimeException 类及其子类,表示 JVM 在运行期间可能出现的异常。
编译时异常:除了RuntimrException及其子类外的类。
异常也可以分为受检异常和非受检异常
受检异常:编译时异常都是。
非受检异常:运行时异常和Error类型错误都是。
2.java异常关键字
throws:声明可能会抛出的异常,用在方法签名后面。
void test() throws Exception{}
throw:抛出异常
throw new Exception();
try-catch-finally:声明捕获异常,try是可能会抛出异常的执行代码,catch是捕获可能会抛出的异常后的处理方式,finally是一定会执行的代码块,即使发生异常,一般用来释放资源,做收尾操作。其中try必须要,catch和finally可以只有其中一个,也可以都有。finally只能有一个,catch可以有多个(捕获不同类型的异常)。
try{
//代码
}catch (Exception e){
//捕获异常要如何处理
}catch (SQLException s){
//捕获异常要如何处理
}finally {
//收尾操作,一定会执行,即使因为异常而退出也会执行,
//在try或者catch中return也会执行,在return前执行。
}
3.Error和Exception的区别
Error 类型的错误通常为虚拟机相关错误,如系统崩溃,内存不足,堆栈溢出等,编译器无法检测到这种异常,应用程序也无法解决这种异常,通常程序会终止。
Exception类型的异常是可以在应用程序中捕获的,并且能够处理使程序恢复正常。