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

Java中错误处理机制的简单原理和应用,并说明Error与Exception有什么区别

2012-09-05 
Java中异常处理机制的简单原理和应用,并说明Error与Exception有什么区别?java程序违反java的语义规则时,ja

Java中异常处理机制的简单原理和应用,并说明Error与Exception有什么区别?

java程序违反java的语义规则时,java虚拟机就会将发生的错误表示为一个异常

违反语义规则包括两种情况:

一种是java类库内置的语义检查 比如 数组越界 引发IndexOutOfBoundsException;访问NULL的对象时会引发NullPointerException

另外一种情况就是JAVA允许程序员扩展这种语法检查,程序员可以自定义异常,并自由选择在何时用throw关键字引发异常,所有的异常都是java.lang.Throwable的子类

?

Error 和 Exception:

java中的Error和Exception都是来自Throwable这个class的,是他的subclass

Error:是系统中的错误,程序员不能改变处理的这是在程序编译的时候出现的错误,只有通过修改程序才能修正Error

Exception:是在程序运行的时候捕捉到的错误,他是可以处理的异常

Exception:它也分两种:RuntimeException(是经常出现的错误可以不catch)和其他Exception(是必须要catch的,这样程序才能继续,像某个方法里面有throw IoException).

一、

* Runtime exceptions:
在定义方法时不需要声明会抛出runtime exception; 在调用这个方法时不需要捕获这个runtime exception; runtime exception是从java.lang.RuntimeException或java.lang.Error类衍生出来的。
* Checked exceptions:
定 义方法时必须声明所有可能会抛出的checked exception; 在调用这个方法时,必须捕获它的checked exception,不然就得把它的exception传递下去; checked exception是从java.lang.Exception类衍生出来的。
二、逻辑上
从逻辑的角度来说,checked exceptions和runtime exception是有不同的使用目的的。checked exception用来指示一种调用方能够直接处理的异常情况。而runtime exception则用来指示一种调用方本身无法处理或恢复的程序错误。

checked exception迫使你捕获它并处理这种异常情况。以java.net.URL类的构建器(constructor)为例,它的每一个构建器都会抛出 MalformedURLException。MalformedURLException就是一种checked exception。设想一下,你有一个简单的程序,用来提示用户输入一个URL,然后通过这个URL去下载一个网页。如果用户输入的URL有错误,构建 器就会抛出一个exception。既然这个exception是checked exception,你的程序就可以捕获它并正确处理:比如说提示用户重新输入。

热点排行