提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
学习目标:
异常处理
1.Exception–>可以由程序解决
1>运行时异常/非受查异常
程序运行时抛出的异常
2>编译时异常/受查异常
程序编译时的异常
2.Error–>由程序员自己解决
多练习,尽量少出现这种异常。
3.java处理异常的语法
try{
//可能出现异常的代码
}catch(){
捕获try当中可能出现的异常。
}finally{
}
catch:当程序抛出异常时,由catch块进行捕获,程序自己来处理异常。 这样导致的结果是,程序会继续向下执行。
finally:finally代码肯定会被执行,所以经常做一些善后工作比如关闭资源
用catch处理异常的代码
public static void main1(String[] args) {
int[] array = {1, 2, 3};
try {
System.out.println(array[4]);
System.out.println("不会被执行");
} catch (NullPointerException e) {
e.printStackTrace();
System.out.println("捕获到空指针异常");
}catch (ArrayIndexOutOfBoundsException e) {
e.printStackTrace();
System.out.println("捕获到数组越界异常");
}finally {
System.out.println("finally代码肯定会被执行,所以经常做一些善后工作比如关闭资源");
}
try {
System.out.println(array[4]);
} catch (ArrayIndexOutOfBoundsException|ArrayStoreException e) {
e.printStackTrace();
System.out.println("捕获到数组越界异常");
}catch (NullPointerException e) {
e.printStackTrace();
System.out.println("捕获到数组越界异常");
}catch (Exception e) {
e.printStackTrace();
System.out.println("捕获到Exception界异常");
}
System.out.println("hello");
}
由catch捕捉异常,程序会继续向下执行。
不用catch处理异常的代码
public static void main2(String[] args) {
int[] array = {1, 2, 3};
System.out.println(array[4]);// 1
System.out.println("hello");
}
会直接杀死程序,不会往下进行
用try catch处理异常需要注意的问题
1.catch块当中,一定要捕获相应的一场,如果程序抛出的异常在catch块当中,不能被捕获,那么就会交给Jvm处理
2.可以通过catch来捕获多个异常。
3.不建议直接捕获exception。
4.finally快当中的代码,终究会被执行。不建议在finally当中,出现return语句。
4.抛出异常
throw 一般抛出某个你想抛出的异常(自定义的异常)