一、体系简介
java中的Exception类的子类不仅仅只是像上图所示只包含IOException和RuntimeException这两大类,事实上Exception的子类很多很多,主要可概括为:运行时异常与非运行时异常。
在上述体系中,Error表示严重的系统错误,一般不需要程序员进行处理;而Exception则表示程序运行过程中可能发生的异常情况,需要程序员进行处理。
运行时异常和非运行时异常
运行时异常都是RuntimeException类及其子类异常,如NullPointerException、IndexOutOfBoundsException等,这些异常是不检查异常,程序中可以选择捕获处理,也可以不处理。这些异常一般是由程序逻辑错误引起的,程序应该从逻辑角度尽可能避免这类异常的发生。
非运行时异常是RuntimeException以外的异常,类型上都属于Exception类及其子类。从程序语法角度讲是必须进行处理的异常,如果不处理,程序就不能编译通过。如IOException、SQLException等以及用户自定义的Exception异常,一般情况下不自定义检查异常。
二、异常的处理
java异常处理的方式:
方式一: try-catch-finally
try{
//可能产生异常的代码
}catch (Exception e){
//产生异常时咋么处理
}finally {
//无论是否发生异常,都会执行的语句
}
方式二: throws + 异常类型
过程一:Java程序的执行过程中如出现异常, 会生成一个异常类对象,该异常对象将被提交 给Java运行时系统, 这个过程称为抛出(throw)异常。
过程二:抓,可以理解为异常的护理方式。