Java:异常处理的方式

1.JVM默认的处理方式

  • 把异常的名称,异常原因及异常出现的位置等信息输出在了控制台                 
  • 程序停止执行,下面的代码不会再执行了

2. 自己处理(捕获异常)

1.格式:

try{

可能出现异常的代码;

}catch(异常类名 变量名){

异常的处理代码;

}

2.目的

当代码出现异常时,可以让程序继续往下执行。

案例1:

        int[] arr = new  int[]{1,2,3,4,5};

        try {
            System.out.println(arr[10]);
        }catch (ArrayIndexOutOfBoundsException e){

            System.out.println("索引越界了");
        }

        System.out.println("看看运行了吗?");
        /**
         * 索引越界了
         * 看看运行了吗?
         */

3.常见问题

 1.如果try中没有遇到问题,怎么执行?

答:会把try里面所有的代码全部执行完毕,不会执行catch里面的代码。

2.如果try中可能会遇到多个问题,怎么执行?

答:会写多个catch与之对应,父类异常需要写在下面。

3.如果try中遇到的问题没有被捕获,怎么执行?

答:相当于try...catch白写了,当前异常会交给虚拟机处理。

4.如果try中遇到了问题,那么try下面的其他代码还会执行吗?

答:不会执行了。try遇到问题,直接跳转到对应的catch如果没有对应的catch与之匹配,则交给虚拟机处理。

案例2:

      int[] arr = new int[]{1,2,3,4,5};

        try {
            System.out.println(2/0);
            System.out.println(arr[10]);
        }catch (ArrayIndexOutOfBoundsException e){
            System.out.println("索引越界");
        }catch (ArithmeticException e){
            System.out.println("除数不能为0");
        }catch (NullPointerException e){
            System.out.println("空指针异常");
        }catch (Exception e){
            System.out.println("Exception");
        }

        System.out.println("看看执行了吗");

你可能感兴趣的:(Java,SE,java,jvm,开发语言)