Java 之 异常基础

一、异常概念

  异常:指的是程序在执行过程中,出现的非正常的情况,最终会导致 JVM 的非正常停止。

  在 Java 等面向对象的编程语言中,异常本身就是一个类,产生异常就是创建异常对象并抛出了一个异常对象。

  Java 处理异常的方式是中断处理。

  异常指的并不是语法错误,语法错误,编译不通过,不会产生字节码文件,根本不能运行。

二、异常体系

  异常机制 其实是帮助我们找到程序中的问题。

  java.lang.Throwable:类是 Java 语言中所有错误或异常的超类。其下有两个子类:

    Exception异常,进行编译(写代码) java 程序出现的问题,程序员可以通过代码的方式纠正,使程序继续运行。

      Error严重错误,无法通过处理的错误,只能事先避免,必须通过修改源代码,程序才能继续执行。经典代表:VirtualMachineError(堆内存溢出OutOfMemoryError,栈内存溢出StackOverflowError)

  

三、异常分类

  异常(Exception)的分类:根据编译时期还是运行时期来分类

    运行时期异常RuntimeException 运行时期异常(或它的子类)。又称非受检异常,即在运行时期,检查异常,在编译时期,运行异常不会编译器检测(不报错)。(如:空指针异常、数组下标越界、类型转换异常、数字格式异常)这些异常可以完全避免掉。

    编译时期异常Exception 异常。除了RuntimeException系列以外的,都是编译时异常,又称为受检异常。在编译时期就会检查,如果没有处理异常,则编译失败。(如:IOException、日期格式化异常)  

四、异常的产生过程解析

  异常的产生过程分析(分析异常的怎么产生的,如何处理异常)

五、Java 如何处理异常(处理异常的过程)? 

  (1)当程序运行到某一句时,发生了异常,那么程序会先停下来

  (2)程序会在这句代码处,查看原因,生成一个合理“异常对象”,然后“抛”出

  (3)JVM会检测在这句代码的外围,是否有try..catch结构,可以“捕获”它,

     如果可以捕获,那么程序再处理完异常后,继续下面的运行,不会崩溃;

     如果不能捕获,那么会把这个异常继续抛给“上级”,如果“上级”能处理,那么程序从“上级"处理完的代码后面继续运行;

     如果上级也不能处理,那么继续往上抛,一直到达JVM,那么就“崩溃”

原文地址:https://www.cnblogs.com/niujifei/p/11449170.html