Java异常以及 错误 Exception Error

JAVA 异常

java 异常类框架图

在JAVA中所有的异常都是 有一个共同的祖先 : Throwable类。在Java中只有 Throwable类以及其子类才能被程序捕获或者抛出!

Throwable 类又有两个重要的子类: Error(错误) 、 Exception(异常)其各自又都包括很多的子类。

Java异常以及 错误 Exception Error

1、什么是java Exception

**Exception : 是程序本身可以处理的,就是指你的程序在运行的时候可能会出现意外,所导致无法继续运行下去,那么就可以提前在可能出现意外的地方捕获异常。**比如:你的程序可能出现空指针, 或者忘记传入参数,参数类型不对,等等都是属于程序本身没有错,但是运行时候出现了意外。

Exception 分类

1、可检查异常

可检查异常就是在编译期间就会检查, 它就是那些必须显示捕获抛出的异常,比如关闭数据库链接、开启线程等等。

2、不检查异常

不检查异常,就是在编译期间不会被要求显示抛出的异常, 即在运行时候出错,可能出现:数组越界、除以0、空指针异常等。

2、什么是java Error

Error是指正常情况下,不大可能出现的情况,绝大部分的Error都会导致程序(比如JVM自身)处于非正常状态,不可恢复状态。既然是非正常情况,所以不便于也不需要捕获,常见的比如OutOfMemoryError之类,都是Error的子类。

3、有什么区别联系

异常和错误的区别:异常能被程序本身可以处理,错误是无法处理。

4、Throwable 类常用方法

public string getMessage():返回异常发生时的详细信息

public string toString():返回异常发生时的简要描述

public string getLocalizedMessage():返回异常对象的本地化信息。使

用 Throwable 的子类覆盖这个方法,可以声称本地化信息。如果子类没

有覆盖该方法,则该方法返回的信息与 getMessage()返回的结果相同

public void printStackTrace():在控制台上打印 Throwable 对象封装的

异常信息

5、异常处理总结

 try 块:用于捕获异常。其后可接零个或多个 catch 块,如果没有 catch

块,则必须跟一个 finally 块。

 catch 块:用于处理 try 捕获到的异常。 finally 块:无论是否捕获或处理异常,finally 块里的语句都会被执行。

当在 try 块或 catch 块中遇到 return 语句时,finally 语句块将在方法返回

之前被执行。

在以下 4 **种特殊情况下,**finally 块不会被执行:

  1. 在 finally 语句块中发生了异常。

  2. 在前面的代码中用了 System.exit()退出程序。

  3. 程序所在的线程死亡。

  4. 关闭 CPU。