您的位置:首页 > 编程语言 > Java开发

对于JAVA处理异常的理解

2017-09-18 21:13 369 查看

1.java异常类层次图



2.java异常类的分析

Throwable:所有异常类都继承自它。 它有两个重要的子类 Error和Exception

Error:Error是我们所写的代码无法解决的错误,一般是JVM出现问题,栈溢出或者内存溢出等,我们不需要处理。

Exception:Exception是我们所写的代码可以解决的错误

JAVA中的异常(包括Error和Exception)可以分为可查异常不可查异常

可查异常:在Exception类中除了‘RuntimeException类及其子类’之外的异常都称为可查异常,例如

IOException,SQLException等。这类异常编译器要求必须处理。

不可查异常:Error和RuntimeException类及其子类。这类异常编译器不要求强制处理。

Exception类分为运行时异常非运行时异常,我们应当尽可能处理这些异常

运行时异常:RuntimeException 如空指针异常,这些异常可以处理,也可以不处理(意思是不处理这些异常编译也能通过,

我们应当修改程序消除错误),一般是由程序逻辑错误导致。

非运行时异常:除了RuntimeException之外的异常,如果不处理不能编译,如IOException等。

3.处理异常的方式

(1)抛出

(2)捕获

抛出:方法中抛出异常需要使用throws,代表着将可能出现的异常给调用这个方法调用者处理,调用者

若不能处理也可以再向上层抛出,但是最终需要有调用者处理。

捕获:使用try-catch或者try-catch-finally。

异常总是先抛出,后捕获。

当有异常时,try之后的大括号内的监控区域会自动抛出异常。

程序运行找到相匹配的catch子句执行里面的内容。

注:将捕获相对高层的异常类的catch子句放在后面。否则,捕获底层异常类的catch子句将可能会被屏蔽。

4.Throwable类中的常用方法

getCause():返回抛出异常的原因。如果 cause 不存在或未知,则返回 null。

getMeage():返回异常的消息信息。

printStackTrace():对象的堆栈跟踪输出至错误输出流,作为字段 System.err 的值。

有时为了简单会忽略掉catch语句后的代码,这样try-catch语句就成了一种摆设,
一旦程序在运行过程中出现了异常,就会忽略处理异常,而错误发生的原因很难查找。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java 异常