异常

异常概念

异常是程序可能出现了不正常的情况。

异常体系

Error:严重问题,通过代码无法处理。比如:电源断了。
Exception:称为异常,它表示程序本身可以处理的问题。
1.编译时异常特点
在编译的时候检测的异常
编译时异常,是在编译成class文件时必须要处理的异常,也称之为受检异常。
2.运行时异常特点
在运行时候检测的异常
运行时异常,在运行字节码文件时可能出现的异常。也称之为非受检异常。
ArrayIndexOutOfBoundsException: 数组索引越界异常 运行时异常
NullPointerException: 空指针异常 运行时异常
ClassCastException:类型转换异常 运行时异常
ArithmeticException: 计算异常 运行时异常
ParseException: 日期解析异常 编译时异常

虚拟机默认处理异常的方式?

1.打印异常信息
2.停止程序

Java中处理异常的2种方式

throws处理异常, 不负责任

image.png
修饰符 返回值类型 方法名(参数) throws 异常类名1, 异常类名2 { }

throws的作用

抛出异常,把异常抛给调用者处理

try_catch处理异常, 负责任

image.png
public String getMessage() //返回此 throwable 的详细消息字符串
public String toString() //返回此可抛出的简短描述
public void printStackTrace() //把异常的错误信息输出在控制台

说出try…catch处理异常的好处

可以让程序继续往下执行

try { 可能出现异常的代码;
} catch(异常类名 变量名) {
异常的处理代码;} finally {
代码;
}

finally代码块作用

在finally代码块中的代码一定会被执行。

说出自定义异常的步骤

定义类继承Exception/RuntimeException
编写构造器

自定义异常存在的意义

让控制台的报错信息更加的见名之意。