一张图搞清楚Java异常机制

简介: 下面是Java异常类的组织结构,红色区域的异常类表示是程序需要显示捕捉或者抛出的。

下面是Java异常类的组织结构,红色区域的异常类表示是程序需要显示捕捉或者抛出的。

image.png

Throwable

Throwable是Java异常的顶级类,所有的异常都继承于这个类。


Error,Exception是异常类的两个大分类。


Error

Error是非程序异常,即程序不能捕获的异常,一般是编译或者系统性的错误,如OutOfMemorry内存溢出异常等。


Exception

Exception是程序异常类,由程序内部产生。Exception又分为运行时异常、非运行时异常。


运行时异常

运行时异常的特点是Java编译器不会检查它,也就是说,当程序中可能出现这类异常,即使没有用try-catch语句捕获它,也没有用throws子句声明抛出它,也会编译通过,运行时异常可处理或者不处理。运行时异常一般常出来定义系统的自定义异常,业务根据自定义异常做出不同的处理。


常见的运行时异常如NullPointException、ArrayIndexOutOfBoundsException等。


非运行时异常

非运行时异常是程序必须进行处理的异常,捕获或者抛出,如果不处理程序就不能编译通过。如常见的IOException、ClassNotFoundException等。


相关文章
|
12小时前
|
Java
何处理Java中的ZipException异常?
何处理Java中的ZipException异常?
|
12小时前
|
Java UED 程序员
解决Java中的IllegalArgumentException异常的技术实践
解决Java中的IllegalArgumentException异常的技术实践
|
12小时前
|
Java UED
Java中如何优雅地处理TimeoutException异常?
Java中如何优雅地处理TimeoutException异常?
|
12小时前
|
Java 网络安全 API
Java中如何解决SocketException异常?
Java中如何解决SocketException异常?
|
11小时前
|
监控 Java
解决Java中的MalformedURLException异常的实用技巧
解决Java中的MalformedURLException异常的实用技巧
|
12小时前
|
JSON 监控 Java
Java中如何解决JsonProcessingException异常?
Java中如何解决JsonProcessingException异常?
|
12小时前
|
Java
如何处理Java中的RemoteException异常?
如何处理Java中的RemoteException异常?
|
12小时前
|
安全 Java 网络安全
如何在Java中处理SSLHandshakeException异常?
如何在Java中处理SSLHandshakeException异常?
|
1天前
|
安全 IDE Java
如何处理Java中的空指针异常?
如何处理Java中的空指针异常?
|
12小时前
|
Java 网络架构 程序员
解决Java中的NoRouteToHostException异常的方法
解决Java中的NoRouteToHostException异常的方法