【JAVASE】异常(10)
程序员文章站
2022-04-16 15:44:37
引言1点了,在经历了激烈的思想斗争(边看剧边斗争)之后,还是决定锻炼锻炼身体,熬一次夜,把今天的肝完。知识点总结异常异常的定义异常,就是有异于常态,和正常情况不一样;在java中,组织当前方法或作用域的情况,称之为异常。异常的分类......
引言
无名之辈
知识点总结
异常
异常的定义
异常,就是有异于常态,和正常情况不一样;在java中,组织当前方法或作用域的情况,称之为异常。
异常的分类
- 按照 ‘在编译时是否能被检验’ 区分:异常可以分为两类,检验异常(CheckedException)和非检验异常(UnCheckedException);非检验异常在编译器检测不到,又可分为运行期异常(RuntimeException)和错误(Error);
-
按照异常的严重性可分为可处理的异常和不可处理的异常;
可处理的异常类封装在java.lang.Exception中,不可处理的在java.lang.Error中。
继承关系
异常的产生原理
简单理解为JVM得到异常后,抛出异常;
下面以ArrayIndexOutOfBoundsException异常来具体解释:
异常的处理
Throw关键字
Throw用于抛出指定异常,无论是被实例化还是被捕获的异常都可以用Throw抛出;
如果是RuntimeException或其子类,可以不用处理;编译期异常就要用Throws或try_catch处理。
//抛出运行期异常
private static void Menthod2() {
throw new RuntimeException("运行期异常 ");
}
//抛出运行期异常
private static void Menthod2() throws IOException {
throw new IOException("编译期异常 ");
}
Throws关键字
Throw是处理异常的第一种方式;
注意事项
- 必须放在方法声明处;
- 可以处理多个异常;
- 最终也是交给JVM处理;
private static void Menthod2() throws IOException {
throw new IOException("异常抛出,由throws处理 ");
}
Try_Catch()
try{ …}块中代码出现异常后,会直接执行catch块中的代码,且由于不用JVM处理,故程序不会终止,后续代码仍然能够执行;
try{
int[] a={1,3,4,5,6,7,8};
Menthod1(a,10);
}catch (Exception e){
System.out.println("数组越界了");
}
System.out.println("后续接着执行,没影响~~~");
本文地址:https://blog.csdn.net/alpha_xia/article/details/107329229
推荐阅读