try{
System.out.println("ok");
}finally{
System.out.println("error");
}try没有catch的情况;
这段代码可以编译并运行;以前没遇到过,很惊奇,为什么能这样?既然能这样,为什么不能只有一个try(试了,只有一个try编译报错)

解决方案 »

  1.   

    没有catch就是不捕获异常,对异常不进行处理而已。
    如果只添加一个try的话,那么要try语句就没有什么用了。
      

  2.   

    没研究过。try...finally...感觉还是有用的,能保证finally中的语句得到执行,如果没有try,只是finally也是编译不通过的,try...没有catch、finally,try也就没什么意义了
      

  3.   

    用到的是finally中的模块一定能够执行的特性。如果某段代码一定要执行(不管是否有异常),比如对资源的释放,就应该放在finally模块中。
      

  4.   

    public class ETest {
    private void tex(){
    File file = null;
    file.delete();
    }

    public static void main(String[] args){
    ETest et = new ETest();
    try{
    et.tex();
    }finally{
    System.out.println("finally");
    }
    }
    }执行结果:finally
    Exception in thread "main" java.lang.NullPointerException
    at com.lkl.test.exceptiontest.ETest.tex(ETest.java:8)
    at com.lkl.test.exceptiontest.ETest.main(ETest.java:14)
      

  5.   

    不catch代表不处理异常

    System.out.println("ok");
    System.out.println("error");
    这样写效果是一样的。
      

  6.   

    catch 只是用来处理异常,如果try 不发生异常就不执行catch,你没写catch,那表示都不处理,但肯定会执行 finally