异常简介

异常概念

异常 :指的是程序在执行过程中,出现的非正常的情况,最终会导致JVM的非正常停止。 在Java等面向对象的编程语言中,异常本身是一个类,产生异常就是创建异常对象并抛出了一个异常对象。Java处 理异常的方式是中断处理。 异常指的并不是语法错误,语法错了,编译不通过,不会产生字节码文件,根本不能运行。

异常体系

异常机制其实是帮助我们找到程序中的问题,异常的根类是 java.lang.Throwable ,其下有两个子类:
  • java.lang.Error :无法通过处理的错误,只能事先避免,好比绝症。
  • java.lang.Exception :平常所说的异常指 java.lang.Exception 。

异常分类

我们平常说的异常就是指Exception,因为这类异常一旦出现,我们就要对代码进行更正,修复程序。
异常(Exception)的分类:根据在编译时期还是运行时期去检查异常?
  • 编译时期异常:checked异常。在编译时期,就会检查,如果没有处理异常,则编译失败。(如日期格式化异常)
  • 运行时期异常:runtime异常。在运行时期,检查异常.在编译时期,运行异常不会编译器检测(不报错)。(如数学异常)

异常的产生过程解析 

以数组越界异常为例

异常产生步骤:

  1. 我们访问了数组中不存在的索引,这个时候,JVM就会检测出程度会出现异常。
  2. 当出现异常之后,JVM首先会根据异常产生的原因创建一个异常对象,这个异常对象包含了异常产生的(内容,原因,位置)new ArrayIndexOutOfBoundsException:4;
  3. 其次在产生异常的方法中,寻找有没有异常的处理逻辑(try..catch),如果存在则自己处理异常。否则JVM就会把异常对象抛出给方法的调用者main方法来处理这个异常
  4. main方法接受到这个异常,也会找有没有异常的处理逻辑(try..catch),如果存在则自己处理异常。如果没有则继续吧对象抛出给main方法的调用者JVM处理。
  5. JVM接收到异常对象,做了两件事。

      1:把这个异常对象包含了异常产生的(内容,原因,位置)new ArrayIndexOutOfBoundsException:4; 打印到控制台

      2:JVM会终止当前正在执行的Java程序 --->中断处理

猜你喜欢

转载自www.cnblogs.com/wurengen/p/10877619.html