一、Java异常类层次结构

Java中,所有的异常都来源于java.lang包中的Throwable类,它有两个重要的子类,Exception(异常)和Error(错误)。
Exception:程序本身可以处理的异常,可以通过catch来进行捕获。Exception又可以分为 受检查异常(必须处理) 和 不受检查异常(可以不处理)。Error:Error属于程序无法处理的错误 ,我们没办法通过catch来进行捕获 。例如,虚拟机内存不够错误(OutOfMemoryError)、类定义错误(NoClassDefFoundError)等 。这些异常发生时,Java 虚拟机(JVM)一般会线程终止。
二、Throwable类常用方法
public String getMessage(): 返回异常发生时的简要描述public String toString(): 返回异常发生时的详细信息public String getLocalizedMessage():返回异常对象的本地化信息。使用Throwable的子类覆盖这个方法,可以生成本地化信息。如果子类没有覆盖该方法,则该方法返回的信息与getMessage()返回的结果相同public void printStackTrace():在控制台上打印Throwable对象封装的异常信息
三、try-catch-finally
try块: 用于捕获异常。其后可接零个或多个catch块,如果没有catch块,则必须跟一个finally块。catch块: 用于处理 try 捕获到的异常。finally块: 无论是否捕获或处理异常,finally块里的语句都会被执行。当在try块或catch块中遇到return语句时,finally语句块将在方法返回之前被执行。
在以下 2种特殊情况下,finally 块不会被执行:
- 在
try或finally块中用了System.exit(int)退出程序。但是,如果System.exit(int)在异常语句之后,finally还是会被执行 - 程序所在的线程死亡。

最低0.47元/天 解锁文章
1439

被折叠的 条评论
为什么被折叠?



