异常:就是程序出现了不正常的情况。比如数组索引越界异常(循环length没有-1),算数异常(x/0)等等
如果程序出现了问题,我们没有做任何处理,最终 JVM 会做默认的处理。
自己处理异常,也叫做:捕获异常。
类似格式如下代码
try {
可能出现异常的代码;
} catch(异常类名 变量名) {
异常的处理代码;
}
好处:可以让程序继续往下执行。
使用throws或者throw进行异常抛出处理
throws:
写在方法声明后面,跟的是异常类名
表示声明异常,告诉方法调用者有可能会出现这样的异常。
throw:
写在方法体中,跟的是一个异常对象
表示手动抛出异常对象,告诉方法调用者出了这样的问题。
Throwable的成员方法
当我们在catch中捕获异常后,可以调用异常对象中的方法进行操作,异常中常用方法有以下3个:
public String getMessage() —— 获取异常的描述信息
public String toString() —— 获取异常的类型和描述信息
public void printStackTrace() —— 打印异常的类型,描述信息,位置
JDK提供的异常类虽然比较多,但是不一定符合我们的需求。
此时我们需要根据自己业务的异常情况来定义自己的异常类,比如年龄负数问题,考试成绩负数问题。
自定义异常存在的意义:就是为了让控制台的报错信息更加的见名知意。
如何定义自定义异常
public class MyException extends RuntimeException {
public MyException() { }
public MyException(String message) {
super(message);
}
}