Java 中的异常(Exception)又称为例外,是一个在程序执行期间发生的事件,它中断正在执行的程序的正常指令流。为了能够及时有效地处理程序中的运行错误,必须使用异常类。

Throwable是Java中异常的根类,它有两个子类:

  Exception:是程序本身可以处理的异常。异常处理通常就是针对这种类型异常的处理。它也可以细分为两个方向:

    非检查异常(运行时异常):编译器不要求强制处理的异常,程序员可以不管也可以捕获。

      例:空指针异常、数组下标越界、算数异常、类型转换异常等等

    检查异常:编译器要求必须处理的异常,否则通不过变异

      例:IO异常、SQL异常

  Error:是程序无法处理的错误,表示运行应用程序中较严重的问题。常见的有:虚拟机错误、内存溢出、线程死锁。

 

Java 基础系列:异常

 1 异常类型
 2 Throwable
 3     错误Error
 4         错误不是异常,程序无法处理的错误,表示运行应用程序中较严重的问题。
 5         常见的有:虚拟机错误、内存溢出(堆栈溢出)、线程死锁。
 6         错误类
 7             VirtualMachineError 虚拟机错误
 8                 OutOfMemoryError 内存溢出错误类
 9                 StackOverflowError 栈溢出错误类
10             LinkageError 链接错误类
11                 NoClassDefFoundError 类定义未找到错误类
12             AWTError 图形用户界面错误类
13     异常Exception
14         是程序本身可以处理的异常。异常处理通常就是针对这种类型异常的处理。
15         检查性异常
16             用户错误或问题引起的异常,这是程序员无法预见的,是必须进行处理的异常,如果不处理,程序就不能编译通过。
17             java内置的非运行时异常
18                 ClassNotFoundException    应用程序试图加载类时,找不到相应的类,抛出该异常。
19                 InterruptedException    一个线程被另一个线程中断,抛出该异常。
20                 IOException    I/O 异常的根类
21                 EOFException    文件结束
22                 FileNotFoundException    找不到文件
23                 SQLException    操作数据库异常
24                 NoSuchFieldException    请求的变量不存在
25                 NoSuchMethodException    请求的方法不存在
26                 CloneNotSupportedException    当调用 Object 类中的 clone 方法克隆对象,但该对象的类无法实现 Cloneable 接口时,抛出该异常。
27                 IllegalAccessException    拒绝访问一个类的时候,抛出该异常。
28                 InstantiationException    当试图使用 Class 类中的 newInstance 方法创建一个类的实例,而指定的类对象因为是一个接口或是一个抽象类而无法实例化时,抛出该异常。
29         运行时异常
30             一般由程序逻辑错误引起,是可能被程序员避免的异常。在编译时被忽略,程序中可以选择捕获处理,也可以不处理。
31             RuntimeException
32                 NullPointerException    当应用程序试图在需要对象的地方使用 null 时,抛出该异常
33                 ArithmeticException    当出现异常的运算条件时,抛出此异常。例如,一个整数"除以零"时,抛出此类的一个实例。
34                 ClassCastException    当试图将对象强制转换为不是实例的子类时,抛出该异常。
35                 NumberFormatException    当应用程序试图将字符串转换成一种数值类型,但该字符串不能转换为适当格式时,抛出该异常。
36                 IllegalMonitorStateException    抛出的异常表明某一线程已经试图等待对象的监视器,或者试图通知其他正在等待对象的监视器而本身没有指定监视器的线程。
37                 IndexOutOfBoundsException    指示某排序索引(例如对数组、字符串或向量的排序)超出范围时抛出。
38                 StringIndexOutOfBoundsException    此异常由 String 方法抛出,指示索引或者为负,或者超出字符串的大小。
39                 ArrayIndexOutOfBoundsException    用非法索引访问数组时抛出的异常。如果索引为负或大于等于数组大小,则该索引为非法索引。
40                 IllegalArgumentException    抛出的异常表明向方法传递了一个不合法或不正确的参数。
41                 UnsupportedOperationException    当不支持请求的操作时,抛出该异常。
42                 ArrayStoreException    试图将错误类型的对象存储到一个对象数组时抛出的异常。
43                 IllegalStateException    在非法或不适当的时间调用方法时产生的信号。换句话说,即 Java 环境或 Java 应用程序没有处于请求操作所要求的适当状态下。
44                 IllegalThreadStateException    线程没有处于请求操作所要求的适当状态时抛出的异常。
45                 NegativeArraySizeException    如果应用程序试图创建大小为负的数组,则抛出该异常。
46                 SecurityException    由安全管理器抛出的异常,指示存在安全侵犯。
47         用户自定义的Exception异常
48             所有异常都必须是 Throwable 的子类。
49             如果希望写一个检查性异常类,则需要继承 Exception 类。
50             如果你想写一个运行时异常类,那么需要继承 RuntimeException 类。
View Code

相关文章:

  • 2021-09-05
  • 2022-03-04
  • 2021-11-18
  • 2021-10-09
  • 2021-04-06
  • 2021-09-22
  • 2021-11-07
猜你喜欢
  • 2021-11-12
  • 2021-09-02
  • 2022-12-23
  • 2021-05-23
  • 2021-12-23
  • 2021-12-23
  • 2021-10-28
相关资源
相似解决方案