diff --git a/javaSE-day05/src/com/inmind/try_catch04/TryCatchDemo06.java b/javaSE-day05/src/com/inmind/try_catch04/TryCatchDemo06.java new file mode 100644 index 0000000..54ee502 --- /dev/null +++ b/javaSE-day05/src/com/inmind/try_catch04/TryCatchDemo06.java @@ -0,0 +1,42 @@ +package com.inmind.try_catch04; +/* +try...catch异常处理方式以及执行流程 + + 之前throws关键字只是将异常声明出去,没有真正地处理,那么如何真的解决掉异常呢??? + + 1.try...catch的作用:真的处理掉了异常,JVM就不会再得到异常,程序会正常执行 + 2.try...catch语法: + try{ + 可能会出现异常的代码 + }catch(指定异常类名 变量名){ + 捕获了异常之后,异常处理代码 + } + + 3.try...catch执行流程: + a.当try中的代码,如果没有发生异常,那么try中的代码正常执行结果,并且catch就不会执行. + b.当try中的代码,如果发生异常,那么try中在发生异常之后的代码就不会执行了, + 如果catch捕获到异常,catch后面的代码会执行,程序正常执行 + c.当try中的代码,如果发生异常,那么try中在发生异常之后的代码就不会执行了, + 如果catch没有捕获到异常,catch后面的代码不会执行,异常交给JVM,程序异常终止 + */ +public class TryCatchDemo06 { + public static void main(String[] args) { + try { + System.out.println("try---------start【1】"); + int[] arr = {1, 2, 3, 4, 5}; + int result = getByIndex(arr, 6); + System.out.println(result); + System.out.println("try---------end【2】"); + } catch (NullPointerException e) { + System.out.println(e); + System.out.println("处理了索引越界异常"); + System.out.println("catch---------【3】"); + } + System.out.println("程序结束------【4】"); + } + + private static int getByIndex(int[] arr, int index) { + int result = arr[index];//JVM只会创建越界异常 + return result; + } +}