zoukankan      html  css  js  c++  java
  • Java异常

    1)首先java对于异常捕获使用的是try---catch或try --- catch --- finally 代码块,程序会捕获try代码块里面的代码,若捕获到异常则进行catch代码块处理。若有finally则在catch处理后执行finally里面的代码。然而存在这样两个问题:

    a.看如下代码:

    try{
        //待捕获代码
    }catchException e){
        System.out.println("catch is begin");
        return 1 
    }finally{
         System.out.println("finally is begin");
    }

    在catch里面有一个return,那么finally会不会被执行呢?答案是肯定的,上面代码的执行结果为:

    catch is begin
    finally is begin

    也就是说会先执行catch里面的代码后执行finally里面的代码最后才return1 ;

    b.看如下代码:

    try{
       //待捕获代码    
    }catchException e){
        System.out.println("catch is begin");
        return 1 
    }finally{
         System.out.println("finally is begin");
         return 2 ;
    }

    在b代码中输出结果跟a是一样的,然而返回的是return 2 ; 原因很明显,就是执行了finally后已经return了,所以catch里面的return不会被执行到。也就是说finally永远都会在catch的return前被执行。(这个是面试经常问到的问题哦!)

  • 相关阅读:
    Python中下划线---完全解读(转)
    数字、基数及表示
    实现二叉排序树的各种算法
    shell脚本 空格
    Linux中执行shell脚本的4种方法
    vim常用命令总结
    Linux 奇技淫巧
    排序算法之二分治法
    二分查找
    排序算法之一插入排序
  • 原文地址:https://www.cnblogs.com/lhang55/p/7600429.html
Copyright © 2011-2022 走看看