From d7f250ba83ed52df9e7b38e0a45e086efe1b24e3 Mon Sep 17 00:00:00 2001 From: xuxin <840198532@qq.com> Date: Wed, 5 Aug 2026 10:26:25 +0800 Subject: [PATCH] =?UTF-8?q?s-day05-try..catch...finally=E7=9A=84=E6=A0=BC?= =?UTF-8?q?=E5=BC=8F=E4=BB=A5=E5=8F=8A=E6=89=A7=E8=A1=8C=E6=B5=81=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../inmind/exception_trycatch02/Demo07.java | 48 +++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 s-day05/src/com/inmind/exception_trycatch02/Demo07.java diff --git a/s-day05/src/com/inmind/exception_trycatch02/Demo07.java b/s-day05/src/com/inmind/exception_trycatch02/Demo07.java new file mode 100644 index 0000000..254caeb --- /dev/null +++ b/s-day05/src/com/inmind/exception_trycatch02/Demo07.java @@ -0,0 +1,48 @@ +package com.inmind.exception_trycatch02; +/* +try..catch...finally的格式以及执行流程 + +try...catch....finally的作用:保证一段代码不管是否出现异常,不管该异常是否被处理,此段代码一定执行(IO的资源释放,数据库连接资源释放) +try...catch....finally的语法: + try{ + 可能会出现异常的代码或者方法 + }catch(指定异常类名 变量名){ + 捕获异常后,异常处理代码 + }finally{ + 一定要执行的代码 + } + + +try-catch....finally的执行顺序: + 1.当try中的代码,如果没有发现异常,那么try中的代码正常执行,并且catch中的代码就不执行, + 遇到finally中的代码正常执行 + 2.当try中的代码,如果发现了异常,那么try中在产生异常之后的代码就不会执行,如果catch捕获到异常,那么catch后面的代码会执行, + 遇到finally中的代码正常执行,程序正常执行 + 3.当try中的代码,如果发现了异常,那么try中在产生异常之后的代码就不会执行,如果catch没有捕获到异常, + 那么catch后面的代码也不会执行, + 遇到finally中的代码正常执行,执行完Finally之后,会将没有捕获到的异常交给JVM,JVM打印异常信息,程序异常终止 + */ +public class Demo07 { + public static void main(String[] args) { + try { + System.out.println("try中的方法----开始了【1】"); + int[] arr = {1, 2, 3, 4, 5}; + int resutl = getValue(arr,8); + System.out.println("try中的方法----结束了【2】"); + }catch (NullPointerException e){//捕获空指针异常,如果捕获错了,异常还是存在的,会交给JVM处理 +// }catch (ArrayIndexOutOfBoundsException e){ + System.out.println("捕获了异常----【3】"); + System.out.println("处理了数组索引越界异常"); + }finally { + System.out.println("finally中的代码执行了----【4】"); + } + System.out.println("程序结束-----【5】"); + } + private static int getValue(int[] arr, int i) { + if (i >= arr.length - 1 || i < 0) { + String msg = "数组的最大索引为"+(arr.length-1)+",当前索引"+i+"不合法"; + throw new ArrayIndexOutOfBoundsException(msg);//抛出的是运行时异常,编译时期不提示处理的 + } + return arr[i]; + } +}