在绝大多数情况下catch之后的语句不是会被执行吗?是不是有时直接把异常之后的处理(如内存释放)放在catch之后就可以了呢?在什么情况下要使用Finally呢?
请高手指点。小弟先谢过~

解决方案 »

  1.   

    catch之后的语句是会被执行的,除非你在catch中return了
    在捕获到异常和没有捕获到异常都需要执行的代码放到finally块中
      

  2.   

    没有异常时执行TRY的程序,出现异常时跳到catch块里面处理异常,不管有没有异常总是要执行FIANL块.
      

  3.   

    catch之后的语句不是会被执行吗?
    catch之的语句,如果没有异常是不会执行的,try{
        //doing
    }catch(Exception1 e1){
        e1.printTrace()//如果有异常,这个代码执行
    }catch(Exception2 e2){
        return something;
    }finally{
    //这个代码不管有没有异常,都会执行的,即使catch中有return,finally也执行!
    }
    coding//异常已经处理了,代码继续执行的!
      

  4.   

    如果代码中有
    System.exit(0);
    finally里面的代码是不会执行的,呵呵
    return是能执行的!呵呵
      

  5.   

    在单线程的条件下finally是会被执行的,但在多线程的环境下就不一定了 ,就是说finally不总是最有效的。况且已经有个机器人(虚拟机)帮你做了内存回收的全部工作,在你对操作系统和编译原理不是精通的时候还是多看看java核心的基础知识吧。
    你要是非要用的话提供你两个方法:使用System.gc()可以不管JVM使用的是哪一种垃圾回收的算法,都可以请求Java的垃圾回收;在缺省机制来终止化该对象释放资源,是finalize()一般为:protected void finalize() throws Throwable 
      

  6.   

    try/catch/finally的知识
      

  7.   

    catch语句不一定会执行的!如果try语句中没有发生异常的话,那么就不会执行catch语句了!在JAVA中关于内存的处理我也说不好,他有垃圾回收机制,会定期回收。用的较多的是在连接数据库时,最后要关闭数据库连接。finally语句不管程序中有没有异常发生都会执行的,除非你在其之前就调用语句关闭语句。比如说:System.exit(0);
      

  8.   

    catch后的语句,只在发生该当异常时才被执行
    如:catch XXexception{A}
       A只会在发生XXexception时被执行
       A应该执行发生XXexception时需要执行的操作finally执行一些程序不论正常、异常都需要执行的操作
    如:前面进行了数据库连接,因为不论程序正常、异常都需释放连接,所以就放在finally里对于内存释放,如果发生异常时你需要马上立即进行,则放在catch中,否则发在finally中为好
      

  9.   

    我的意思是:在绝大多数情况下catch块之后的语句不是会被执行吗?是不是有时直接把异常之后的处理(如内存释放)放在catch块之后就可以了呢?在什么情况下要使用Finally呢? 
    不好意思,刚才没说明白。
      

  10.   

    try()中只要不出现异常问题..就可以执行的啊.
    catch语块中是根据抛出异常的类型来做出解决办法.
    Finally 是不管你try{}和catch{}中出不出现异常..都会执行的..除非在try{}遇到return.
    则下面的Finally就不会执行.
      

  11.   

    try{
       ...
       }catch(XXXException e1){
        ....
       }catch(YYYException e2){
        ....
        return exception;//即使这里返回,后面的finally也要被执行
       }finally{
       ....//这里的代码通常是用来释放资源用的.
    }
      

  12.   


    如果执行了 System.exit(0);
    JVM 中止了, finally 将不会被 执行.!
      

  13.   

    对于垃圾回收机制是有这两种方法,但是他们的权限是很小的,只能是相当于建议权,至于最后是不是会对垃圾进行回收则要看jvm的了,建议的东西没有什么实质性的效果。