背景
异常天天见,本文主要围绕Java的异常体系和分类简单讲讲Java的异常。
一、异常体系
异常机制其实是帮助你找到程序中的问题,异常的父类是java.lang.Throwable
,
其下有两个子类:java.lang.Error
与java.lang.Exception
,平常所说的异常指java.lang.Exception
。
Throwable体系:
-
Error:错误顾名思义,一般无法处理,只能事先规避,如JVM虚拟机栈溢出。
-
Exception:异常产生后,通过代码可以纠正处理,保证程序运行,例如文件不存在异常。
Throwable中的常用方法: -
public void printStackTrace()
:打印异常的详细信息。
包含了异常的类型、异常的原因,还包括异常出现的位置,在开发和调试阶段,都得使用printStackTrace。 -
public String getMessage()
:获取发生异常的原因。
提示给用户的时候,就提示错误原因。
二、异常分类
程序员平常说的异常就是指Exception,因为这类异常一旦出现,你就要对代码进行更正,修复程序。
异常(Exception)的分类:
根据在编译时期还是运行时期分类如下,
- 编译时期异常:受检异常,在编译时期就会检查,如果没有处理异常,则编译失败,如文件不存在异常。
- 运行时期异常:运行时才会出现的异常,在编译时期无法发现,如大名鼎鼎的空指针异常。
最后用一张图,直观地描述一下,
小结
1、异常本身不是语法层面的错误,它的本质是程序在执行过程中,出现非正常情况。
2、异常本身是一个类,产生异常就是创建异常对象并抛出了一个异常对象。