Java 异常处理之 论 finally块何时候不走

2018-06-18 03:00:37来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

一. exit退出异常:

import java.util.Scanner;


public class Test3exit {

    /**
     * @param 房山的猫
     * finally什么时候不走
     * alt+shift+z
     */
    public static void main(String[] args) {
        try {
            Scanner input=new Scanner(System.in);
            System.out.print("请输入第一个整数:");
            int num1=input.nextInt();//1)输入不是整数类型  2)除法 输入 0
            System.out.print("请输入第二个整数:");
            int num2=input.nextInt();
            int jg=num1/num2;//输入num2可能输入  0
            System.out.println(jg);
        } catch (Exception e) {
            System.out.println("出现异常");
           System.exit(1);//退出java的虚拟机
            e.printStackTrace();
        }finally{
            System.out.println("finally语句");
        }

    }

}

 

二. return返回:

如果return在异常处理机制块中finally块执行流程高于return;但是在带返回值的方法中,return返回的是当前位置的值,不受finally块影响

 详细解释 请查阅:http://www.cnblogs.com/lsy131479/p/8513577.html

import java.util.Scanner;


public class Test4return {

    /**
     * @param 房上的猫
     * finally什么时候不走
     * alt+shift+z
     */
    public static void main(String[] args) {
        try {
            Scanner input=new Scanner(System.in);
            System.out.print("请输入第一个整数:");
            int num1=input.nextInt();//1)输入不是整数类型  2)除法 输入 0
            System.out.print("请输入第二个整数:");
            int num2=input.nextInt();
            int jg=num1/num2;//输入num2可能输入  0
            System.out.println(jg);
        } catch (Exception e) {
            System.out.println("出现异常");
            return;//程序返回
            
        }finally{
            System.out.println("finally语句");
        }

    }

}

  

       很多人以为,此程序会return反回 不会走finally。其实不然;下面是执行流程:

 

 

----------------------------------------------------------------------------

| 总结:System.exit();//退出java的虚拟机 是finally块唯一不执行的情况  |

----------------------------------------------------------------------------

三. 补充:

正常退出应该用return 0;0表示没有错误
异常退出应用exit,其中的返回值是交给编译器做其他相关对应操作

在main()函数里,exit与return完全一样。但在其他函数里一个是把控制权交给编译器退出程序,一个则是返回到main函数调用位置

 

 

 

 

(C) 房上的猫 。 保留所有权利。
 https://www.cnblogs.com/lsy131479/

 

如需转载,请注明出处!!!

 

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:【原】从零开始改造淘淘商城(引入dubbo解决项目耦合)02

下一篇:注释---知识点总结