Java内置异常体系分类和核心方法
一、介绍什么是异常,java出现异常的场景
- 什么是错误
- 程序运⾏时发⽣的不被期望的事件,阻⽌了程序按照预期正常执⾏
- 常⻅程序错误分三类
- 编译错误:新⼿最常⻅,没遵循语法规范
- 运⾏时错误:程序在执⾏时,
- 逻辑错误:程序没有按照预期的逻辑顺序执⾏
- Java.lang软件包中有⼀个
java.lang.Throwable
类,这个类是java中所有错误和异常的超类,Throwable类有两个⼦类,Error与 Exception- Error
- 是Throwable 的⼦类,包含⼤量⼦类
- 出错后程序⽆法处理,如OutOfMemoryError
- Exception
- 是Throwable 的⼦类,包含⼤量⼦类
- 程序本身可以处理的异常,如ArrayIndexOutOfBoundException
- 两⼤类
- 可查异常(编译器要求必须处置的异常):RuntimeException及其⼦类以外,其他的Exception类及其⼦类, 如 IOException和ClassNotFoundException
- 不可查异常(编译器不要求强制处置的异常): 包括运⾏时异常(RuntimeException与其⼦类)和错误(Error),如ArrayIndexOutOfBoundsException
- Error
二、讲解java内置的异常和Throwable核心方法介绍
- java内置异常
- 可查异常(必须要在⽅法⾥⾯捕获或者抛出)
ClassNoFoundException
应⽤程序试图加载类,找不到对应的类IllegalAccessException
拒绝访问⼀个类的时候NoSuchFieldExcetion
请求的变量不存在NoSuchMethodException
⽅法不存在
- 不可查异常
ArrayIndexOutOfBoundsException
数组索引越界ClassCastException
强制失败抛出异常NullPointerException
需要对象的地⽅使⽤ null 时,抛出该异常NumberFormatException
将字符串转换成⼀种数值类型,但该字符串不能转换为适当格式时,抛出该异常
- Throwable类核⼼⽅法
public String getMessage()
- 异常的详细信息
public Throwable getCause()
- 异常原因
public void printStackTrace()
- 打印错误的堆栈信息,即错误输出流,可以看到错误原因和所在位置
public StackTraceElement [] getStackTrace()
- 堆栈层次的数组,下标为0的元素代表栈顶,最后⼀个元素代表⽅法调⽤堆栈的栈底
- 可查异常(必须要在⽅法⾥⾯捕获或者抛出)