finally中可以处理一些释放资源的操作,比如关闭文件,关闭数据库链接等等。

解决方案 »

  1.   

    第一段的代码无论如何都会执行System.out.println("不管是否发生异常,都要执行此代码。") ; 
    第二段代码如果发生异常那么System.out.println("不管是否发生异常,都要执行此代码。") ; 就不会执行了finally的作用是在发生异常的时候才体现的。如果代码写在finally里面那么发生异常后也会执行囊而代码,如楼上所说的操作
      

  2.   

    声明2点
    1 两段先后的代码,肯定是先后执行的,前面的执行完了,没有返回或者退出,肯定要执行后面的
    2 在一段代码里面,比如一个try catch finally 的结构,才有finally代码一定执行的说法。
      

  3.   

    你用catch这个异常当然会执行了,你不catch异常,就让它抛出,肯定不会执行最后一句
      

  4.   

    你在try catch中写一个return 就明白了
      

  5.   

    这段代码: 
    public class Demo02{ 
    public static void main(String args[]){ 
    // 从运行时处接收参数 
    int i = 0 ; 
    int j = 0 ; 
    System.out.println("程序代码执行之前。") ; 
    try{ 
    i = Integer.parseInt(args[0]) ; 
    j = Integer.parseInt(args[0]); 
    // 跟上可能发生错误的代码段 ---------上面的异常发生后直接跳到catch中执行,后面两条打印不在执行-----------------
    System.out.println(i / j) ; 
    System.out.println("---------------------------") ; 
    // 只要是程序运行时产生的异常肯定可以使用Exception进行接收 
    }catch(Exception e){ 
    System.out.println("异常处理") ; 
    }finally{ 
    System.out.println("不管是否发生异常,都要执行此代码。") ; 
    } ---------上面的异常发生后直接跳到catch中执行,try...catch....finally外面的语句也不再执行,即后面的这条打印不会执行了-----------------System.out.println("程序代码执行之后。") ; 

    }; 
    修改后的: public class Demo02{ 
    public static void main(String args[]){ 
    // 从运行时处接收参数 
    int i = 0 ; 
    int j = 0 ; 
    System.out.println("程序代码执行之前。") ; 
    try{ 
    i = Integer.parseInt(args[0]) ; 
    j = Integer.parseInt(args[0]); 
    // 跟上可能发生错误的代码段 
    System.out.println(i / j) ; 
    System.out.println("---------------------------") ; 
    // 只要是程序运行时产生的异常肯定可以使用Exception进行接收 
    }catch(Exception e){ 
    System.out.println("异常处理") ; 

    ---------上面的异常发生后直接跳到catch中执行,try...catch....finally外面的语句也不再执行,即后面的两条打印都不会执行了-----------------                  System.out.println("不管是否发生异常,都要执行此代码。") ; 
    System.out.println("程序代码执行之后。") ; 

    }; 
    可以这样理解:
     try 里面的语句一直执行到发生异常的那句(后面有的语句也不执行了)为止然后跳到该异常对应的catch语句中去执行,之后执行finally里面的语句后即整个方法结束,后面有任何try-catch-finally外的任何东西都不执行了。
    当然没有任何异常发生的话除了catch里面的语句不执行外其它都执行。
    注意:finally 里面的东西无论有无异常发生都会执行,包括try里面有return;语句。有一点除外:catch里面有System.exit()方法停止虚拟机运行。