异常处理

1.异常

1.1异常(记忆)

  • 异常的概述

    异常就是程序出现了不正常的情况

  • 异常的体系结构

 

1.2JVM默认处理异常的方式(理解)

  • 如果程序出现了问题,我们没有做任何处理,最终JVM 会做默认的处理,处理方式有如下两个步骤:

  • 把异常的名称,错误原因及异常出现的位置等信息输出在了控制台

  • 程序停止执行

1.3try-catch方式处理异常(应用)

  • 定义格式

 

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

 

执行流程

  • 程序从 try 里面的代码开始执行

  • 出现异常,就会跳转到对应的 catch 里面去执行

  • 执行完毕之后,程序还可以继续往下执行

 1 public class ExceptionTest1 {
 2 
 3     public static void main(String[] args) {
 4         // TODO Auto-generated method stub
 5         System.out.println("开始");
 6             method();
 7         System.out.println("结束");//这行代码会不会执行
 8         System.out.println("正常程序继续执行"); //这行代码会不会执行
 9     }
10     
11     public static  void method() {
12         /**
13          * - 如果程序出现了问题,我们没有做任何处理,最终JVM 会做默认的处理,处理方式有如下两个步骤
14             - 把异常的名称,错误原因及异常出现的位置等信息输出在了控制台
15             - 程序停止执行
16          */
17         
18         /**
19          * try {
20                 可能出现异常的代码;
21             } catch(异常类名 变量名) {
22                 异常的处理代码;
23             }
24          */
25         int[] arr = {1,2,3};
26         try { //尝试 
27             System.out.println(arr[3]); //可能出现异常的代码
28 //            System.out.println("以上代码没有异常"); //这行代码会不会执行
29         }catch (Exception e) { //捕捉
30             // TODO: handle exception
31 //            System.out.println("你输入的下标有问题,请检查");
32             e.printStackTrace();
33         }
34         
35         /**
36          * Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 3
37     at com.xja.yichang.ExceptionTest1.method(ExceptionTest1.java:12)
38     at com.xja.yichang.ExceptionTest1.main(ExceptionTest1.java:7)
39          */
40     }
41 
42 }

 

3.5编译时异常和运行时异常的区别(记忆)

  • 编译时异常

    • 都是Exception类及其子类

    • 必须显示处理,否则程序就会发生错误,无法通过编译

  • 运行时异常

    • 都是RuntimeException类及其子类

    • 无需显示处理,也可以和编译时异常一样处理

3.6throws方式处理异常(应用)

  • 定义格式

  • 抛出,甩锅

public void 方法() throws 异常类名 {

}

注意事项

  • 这个throws格式是跟在方法的括号后面的

  • 编译时异常必须要进行处理,两种处理方案:try...catch …或者 throws,如果采用 throws 这种方案,将来谁调用谁处理

  • 运行时异常可以不处理,出现问题后,需要我们回来修改代码

posted @ 2020-11-04 16:39  单sir  阅读(70)  评论(0)    收藏  举报