------- android培训、java培训、期待与您交流! ----------
一.异常
概念:JAVA运行过程中出现的错误
分类:Error,exception(要处理一下,不然编译器不通过),runtimeException(不用处理,编译器不会报错,出现后程序结束)
1.代码try{被检测代码}catch(异常的种类){处理方式}finally{一定会执行的代码},finally只有一种情况下不执行,system.exit(0);
2.也可以在函数后面使用throws抛出,thorw定义在函数内,抛出异常的对象,将异常提供出去给别人
4.里面throw了,外面必须throws
5.Throwable是这两个子类的父类
继承关系是-------Throwable
------------Error
------------Exception
6.如果函数内抛出RuntimException,那么函数上不用声明了
7.异常除了处理还可以抛出去
catch可以抓一个新的异常,也可以接住try出来的
try { throw new AException(); //抛出了一个对象继承RunTimeException class NoValueException extends RunTimeException { NoValueException(String msg) { super(msg); } } interface Shape { void getArea(); } class Rec implements Shape { private int len,wid; Res(int len,int wid) //throws NoValueException,不用声明了 { if(len<=0 ||wid<=0 ) throw new NoValueException("出现非法值"); this.len=len; this,wid=wid; } pulibc void getArea() { sop(len*wid); } } class ExceptionTest { public static void main(String[] args) { Rec r= new Rec(,); r.getArea(); } }
} catch (AException e) { //对AException先处理 throw new BException(); }
注意事项:1.子类再覆盖父类时,如果父类的抛出异常,那么子类覆盖父类方法时,只能抛出父类的异常或者该异常的子类
2
加入父类抛A,那么子类只能抛-A
----B
3.父类抛A,B,那么子类只能抛子集(包括A,B总共)
4.如果父类没有异常,那么子类就不能够抛出异常,即使有也只能try{}catch(){}处理,不能在try中抛了。