异常处理
1.异常
1.1异常(记忆)
-
异常就是程序出现了不正常的情况
-
异常的体系结构

1.2JVM默认处理异常的方式(理解)
-
如果程序出现了问题,我们没有做任何处理,最终JVM 会做默认的处理,处理方式有如下两个步骤:
-
把异常的名称,错误原因及异常出现的位置等信息输出在了控制台
-
程序停止执行
-
定义格式
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类及其子类
-
无需显示处理,也可以和编译时异常一样处理
-
public void 方法() throws 异常类名 {
}
-
这个throws格式是跟在方法的括号后面的
-
编译时异常必须要进行处理,两种处理方案:try...catch …或者 throws,如果采用 throws 这种方案,将来谁调用谁处理
-

浙公网安备 33010602011771号