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前被执行。(这个是面试经常问到的问题哦!)

  • 相关阅读:
    case when if
    存储过程 、函数和事务
    poj 2263
    hdu -1874
    poj 2472
    2544 hdu
    模板floyed
    模板Dijkstra
    hdu 2066
    hdu 2544
  • 原文地址:https://www.cnblogs.com/lhang55/p/7600429.html
Copyright © 2011-2022 走看看