注册 登录
编程论坛 JAVA论坛

请教一个finally语句之后的语句执行问题

laocaiye 发布于 2023-05-30 10:09, 2115 次点击
本来初学Java,下面是关于异常处理例子。当输入非零数字时,为何finally之后的语句System.out.println("这是一个测试字符串!")仍然会被执行?
源代码:
import *;
public class TestException3
{
  public static void main(String[] args)
  {
    int x,y,result;
    x=5;
    int a[]={0};
    try
    {
      InputStreamReader reader=new InputStreamReader(System.in);
      BufferedReader input=new BufferedReader(reader);
      System.out.println("输入除数: ");
      y=Integer.parseInt(input.readLine());
      result=x/y;
      System.out.println("result= "+result);
      a[10]=5;
      System.out.println("发生异常时不会被执行的语句!");
    }
    catch(ArrayIndexOutOfBoundsException e)
    {
        System.out.println("对数组越界已经进行了处理!");
    }
    catch(ArithmeticException e)
    {
        System.out.println("对算术异常已经进行了处理!");
    }
    catch(Exception e)
    {
      System.out.println(e.toString());
      System.out.println("对异常已经进行了处理!");
      return;
    }
    finally
    {
        System.out.println("finally 语句得到执行!");
    }
    System.out.println("这是一个测试字符串!");
  }
}

3 回复
#2
mysqlz2023-06-07 20:33
捕获到异常时,不会影响到程序的后续执行
#3
AZhengYe2023-08-16 14:50
因为你套了层try catch
#4
tm002023-10-13 22:04
System.out.println("这是一个字符串!");这条语句在try...catch...finally的外面,肯定会执行啊。
1