首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

基础错误

2013-07-08 
基础异常基础的异常:1、什么是异常?什么时候会出现异常?其实出现异常了不就是代表你的代码出现了问题了嘛!

基础异常
基础的异常:

1、什么是异常?

什么时候会出现异常?其实出现异常了不就是代表你的代码出现了问题了嘛!所以可以说异常其实看做是对问题的描述,java是面向对象的语言,正所谓万物皆对象,所以,java中异常是将问题进行对象的封装。



异常:

Throwable

                |-error

                |-Exception

                       |-RuntimeException

异常(Exception)分为两种:

一种是编译时异常:编译时异常,就需要抛出或者捕获处理,不然编译就会失败

一种是运行时异常(RuntimeException):不需要进行任何处理,编译器也不会检查出来,就让它存在,然后在运行时出现问题,使得程序停止。然后就需要对代码进行修正。                         



2、异常具有什么特性?

异常具有可抛性。同时也只有异常体系具有可抛性。



3、对于异常的处理有两种方式,一种就是讲异常抛出,通常就是throw,throws,这两个单词的区别,在下面再说,第二中就是try{}catch{}.。



4、throw:作用于方法内部,讲异常进行对象的封装,然后抛出,如:throw new Exception();这里使用了new,从这也可看出异常是对问题的一个封装。

throws:作用于方法上,其实就相当于一个声明,告诉调用者,我这里会抛出异常,让调用者做好准备,或者是处理,或者是接着抛出。



5、如果不讲异常抛出。就必须使用捕获处理。捕获处理一共有两种方式

第一种方式:try{

} catch() {

}

第二种方式:try{

被检测代码;

} catch() {

处理异常的代码;

} finally {

一定会执行的代码;

}

注:一个try后面可以跟多个catch,不过有一条,父类的catch放在最下面



6、第三种方式

try{

} finally {

}

这个时候因为没有catch,也就是没有处理异常的代码,所以也就是必须要将异常抛出,需要再方法上声明异常,在方法内抛出异常。



7、finally:finally内的代码因为基本上都会被执行的。即使出现了异常,也会执行。

有一种特殊情况:在执行到System.exit(0);这个代码说明了正常退出程序,关闭了jvm,将所有的内存释放了。所以finally内的代码就不能执行了



8、子类抛出的异常必须是父类的子类或子集,也可以跟父类抛出一样的异常。

如果父类没有抛出异常,则子类即使有异常也只能捕获处理掉,不能抛出

例子:有两个异常A,B都是继承了Exception,而C异常继承了A异常,如果我调用了父类的方法,抛出了A异常,那么我如果调用子类继承重写父类的这个方法,那么会抛出A,B,C中的那个异常呢?

只可能抛出A,C异常,不可能抛出B异常

热点排行