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

Java 错误知识点

2012-11-10 
Java 异常知识点一、异常的继承结构????? Java异常的基类为java.lang.Throwable,java.lang.Error和java.lan

Java 异常知识点

一、异常的继承结构

????? Java异常的基类为java.lang.Throwable,java.lang.Error和java.lang.Exception继承Throwable,RuntimeException和其它的Exception等继承Exception,具体的RuntimeException继承RuntimeException。
??????Error和RuntimeException及其子类成为未检查异常(unchecked),其它异常成为已检查异常(checked)。

????? Error体系:Error类体系描述了Java运行系统中的内部错误以及资源耗尽的情形。应用程序不应该抛出这种类型的对象(一般是由虚拟机抛出)。如果出现这种错误,除了尽力使程序安全退出外,在其他方面是无能为力的。所以,在进行程序设计时,应该更关注Exception体系。
???? ?Exception体系:Exception体系包括RuntimeException 和其他非RuntimeException

????? RuntimeException:RuntimeException体系包括错误的类型转换、数组越界访问和试图访问空指针等等。

????? 处理RuntimeException的原则是:如果出现 RuntimeException,那么一定是程序员的错误。例如,可以通过检查数组下标和数组边界来避免数组越界访问异常。
???? 其他(IOException等等)checked异常一般是外部错误,例如试图从文件尾后读取数据等,这并不是程序本身的错误,而是在应用环境中出现的外部错误。

?

二、checked exception和runntime exception

?

 * Runtime exceptions:

   在定义方法时不需要声明会抛出runtime exception;

   在调用这个方法时不需要捕获这个runtime exception;

   runtime exception继承自java.lang.RuntimeException或java.lang.Error。

??? 例如:

public void method1(){        if(true){             throw new RuntimeException();        }}public void method2(){        method1();}

???? 【注意】:method1方法会抛出RntimeEeption,但是在定义时不需要声明,在调用时也不需要用try...catch..来捕获该异常。

?

  * Checked exceptions:

   定义方法时必须声明所有可能会抛出的checked exception;

   在调用这个方法时,必须捕获它的checked exception,不然就得把它的exception传递下去;

??????? checked exception都是继承自java.lang.Exception。

??? 例如:

public void method1() throws IOException{        if(true){             throw new IOException();        }}public void method2() throws IOException{        method1();}public void method3(){        try{            method1();        }catch(Exception e){            e.printStackTrace();        }}

?

?三、override时应遵循的规则:

?

??? 规则:“当override一个方法时,只能够申明和抛出不比它的父类版本中申明的异常多的异常”

热点排行