异常处理

来源:互联网 发布:二进制指数退避算法 编辑:程序博客网 时间:2024/06/15 01:01
异常:描述出错信息的对象。


Exception 为所有异常的父类,可以捕获,可以处理。
Error 为所有错误的父类,可以捕获,但不能处理。


Exception和Error有一个共同的父类Throwable


可以通过
try{


}catch(Exception e){}
捕获异常。捕获异常的含义为定义一个异常变量,用该变量接收try块中抛出的异常对象。


异常执行顺序:
1.先执行try块,顺序执行。如果有异常发生,那么转去catch块执行。
  同时中止try块中的其它代码。无论是否有异常,finally都会执行。
2.finally块,是和try,catch连用语句块,表示无论是否有异常发生,都会执行的语句块,
  如果try块或catch块中,有return语句,那么,在跳出方法之前执行。但如果虚拟机
  关闭(System.exit(0)),finally才不会执行。所以,finally一般用于资源清理操作,
  比如,流的关闭,数据库的关闭等 


如果一个try块后面定义了多个catch块,当try块中有异常发生时,只会执行第一个匹配异常对象
的catch块。其余的catch块会忽略。


异常的分类:编译期异常和运行期异常
编译期异常: 是要求开发者必须处理的异常。如果不处理,那么编译错误
运行期异常: 开发者可处理可不处理,如果不处理,也不会编译错误


所有运行期异常都是RuntimeException的子类。如果不是RuntimeException的子类,那么就是编译期异常。
throw new NullPointerException();   //创建一个异常对象,然后显示抛出


throw和throws的区别:
throw是一条语句,表示显示抛出某个异常对象。throw new  Exception();
throws是方法修饰符。表示某个方法可能会抛出某个异常。那么,调用该方法时,就必须处理该方法抛出的异常。


垃圾回收器,回收没有被变量所指向的对象。程序员不能干预垃圾回收,但是可以通过调用System.gc()。
加快垃圾回收的速度。


自动拆箱,先将包装类中封装的基本类型数据取出来,再计算。
Integer x = new Integer(3);
int y = 3;
int z = x+y;
自动装箱,将这个基本类型,封装成包装类对象,再将地址赋值给变量
Integer a = 5;
0 0
原创粉丝点击