Thowable是指异常的最顶级的父类,有两个子类继承它,分别是Error(错误,无法运行)与Excention
(异常)。Runtime异常指运行时出现的异常。
错误和异常的区别
Exception:编译期异常,进行编译(写代码)时出现的异常。
RuntimeException:运行期异常,java程序运行过程中出现的问题。
异常就相当于程序得了一个小毛病,把异常处理掉,程序就可以继续执行。
Error:错误
错误就相当于程序得了一个无法治愈的毛病。
异常处理方式:
1.ALT+回车 throws ParseException,交给虚拟机处理,虚拟机无法处理时,但是能运行,就会在控制台打印这个异常。
2.try catch。它的优点就是可以让虚拟机抛出这个异常,但是可以将异常后面的代码接着运行。
接下来是运行期异常,也就是在编写时不会出现红色波浪号,但是也会在控制台抛出异常的异常。
比如说如下代码:
public class Test {
public static void main(String[] args) {
int arr[]={1,2,3};
System.out.println(arr[3]);
这是控制台会显示
Exception in thread “main” java.lang.ArrayIndexOutOfBoundsException: Index 3 out of bounds for length 3
也就是说出现了索引越界异常。
这时,我们使用try catch的处理方法:
public class Test {
public static void main(String[] args) {
int arr[]={1,2,3};
try {
//可能出现异常的代码
System.out.println(arr[3]);
}catch (Exception e){
//异常的处理逻辑
System.out.println(e);
}
System.out.println("后续代码");
}
}
这时,后续代码也可以打印出来。
JVM在检测出异常时,会做两件事
1.JVM会根据异常的原因创建一个异常对象,这个异常对象包含了异常产生的(内容,原因,位置)
2.在getElement方法(我创建的方法,可以输入索引,并且输出数组中相对应的值)中,没有找到处理异常的逻辑的时候,JVM就会把异常抛出给方法的调用者,也就是main方法,而如果main方法也处理不了,那么又会把异常抛出给main方法的调用者,也就是JVM。
那么,JVM接收到了异常,JVM就会在控制台以红色字体的方式打印出来,并且终止正在执行的java程序–>中断处理。