你说你需要在方法外面对异常进行处理,那我猜想对异常的处理无非是输出异常信息,而异常信息本身就是一个字符串,那就没有必要把异常抛出由外面程序捕获,直接把你需要的异常信息那个字符串传到外面就行了
我的意思是把这个方法的返回类型改写成String

解决方案 »

  1.   

    可行,不过catch块中close之前应先判断对象是否为null
      

  2.   

    在finally中如果还出问题,那应该不是程序能够控制的,或者你在finally里强行的把那个Connection赋空或是释放这个Connection的资源,用到gc()方法回收。这样应该可以达到你的要求。
      

  3.   

    老jFresH,你这样说就显得外行了吧。那还要异常干吗?
    而且着只是传播一次,如果需要多次传播的话,就会乱套了。再说,如果这样也可以的话,标准库的方法为什么还要抛出异常?
    还有如果我的方法还要返回其他信息呢?
    还有啊,异常是不能和正常的有效返回值相混淆的。异常是不经常发生的。
      

  4.   

    同意drugon(personal)的观点,除了这个办法我能想到了就是异常嵌套了
     catch(){
            catch(){
                   }
            }
      

  5.   

    Connection conn;
    try{
         conn = DriverManager.getConnection    ("jdbc:microsoft:sqlserver://192.168.1.59:1433;DatabaseName=businesshall", "sa", "123");
          Statement st = conn.createStatement();
          st.executeUpdate("select asdfasfd");
            st.close();
    }finally{
      try{
         conn.close();
       }catch(Exception e){
         throw e;//或者扔一个自己的异常
       }
    }
      

  6.   

    晕,原来可以向楼上这样写啊,我还以为try后面一定跟着catch呢。
    这不就容易了吗!
    谢谢各位