1、异常:描述出错信息的对象。
①、Exception为所有异常的父类,可以捕获,可以处理。
②、Error为所有错误的父类,可以捕获,但不能处理。
③、Exception和Error有一个共同的父类Throwable。
④可以通过tru{}cath(Exception e){
捕获异常。捕获异常的含义为定义一个异常变量,用该变量接受try块中抛出的异常变量。
}
2、总结:异常的执行顺讯:
①、先实行try块,顺序执行。如果有异常发生,那么转去catch块执行。同时终止try块中的其他代码。无论是否异常finaly都会执行。
②、finally块,和try,catch联用语句块,表示无论是否有异常发生,都会执行语句块,如果try块或catch块中,有return语句,那么在跳出方法之前执行。但如果虚拟机关闭(system.exit(0))finally才不会执行,所以,finally一般用于资源清理操作,比如流的关闭,数据库的关闭登。
③、如果一个try块后面定义了多个catch块。当try中有多个异常发生时,只会执行第一个匹配异常对象的catch块。其余的catch块会忽略。
3、异常分类:编译期异常和运行期异常。
①编译期异常,是要求开发者必须处理的异常。如果不处理,那么编译错误。
②运行期异常,开发者可以处理可以不处理,如果不处理,也不会发生错误。
③所有运行期异常都是RuntimeException的子类。如果不是RuntimeException的子类,那么就是编译期异常。
4、throw 和throws的区别:
①throw是一条语句,表示抛出某个异常对象。throw new Exception();
②throws是方法修饰符。表示某个方法可能抛出某个异常。那么,调用该方法时,就必须处理该方法抛出的异常。
5、垃圾回收器,回收没有被变量所指向的对象。程序员不能干预垃圾回收,但是可以通过调用System.gc()。加快垃圾回收的速度。