为什么连接时:
Connection conn=null;
Statement stmt = null;
try
{
   conn = ..//省略
   stmt = ..//其余省略
}catch(){
.........  //  其余省略
 
}为什么定义在外面try{}catch{}语句外,是必须的还是不成文的习惯?

解决方案 »

  1.   

    (补充)为什么   conn ,stmt 定义在外面try{}catch{}语句外,是必须的还是不成文的习惯?
      

  2.   

    习惯!因为用完要关闭掉!所以要写个finally来关闭连接,定义在try里的话finally就无法访问要关闭的连接对象了!
      

  3.   

    conn ,stmt 定义在try{}catch{}里不就是局部变量了?外边就不能用了。我是这么理解的。
      

  4.   

    因为他们不是对象  而是接口  不能被实例化.放外面只能赋个空值给他  就是这样的...
    当然这样写也可以...try
    {
       Connection conn conn = ..//省略
       Statement stmt stmt = ..//其余省略
    ResultSet rs=...
    }catch(){
    .........  //  其余省略
     
    }
      

  5.   

    4楼所说正解,在try{}catch(){} 中定义就是局部变量了
    外面的程序无法调用到
      

  6.   

    定义在里边就是局部变量了,生命期只到try{}就没了。
    TO 7楼:

    “因为他们不是对象     而是接口     不能被实例化.放外面只能赋个空值给他     就是这样的... 
    当然这样写也可以... 

      可以给它们赋实现了他们的类的实例,你这么说好像有点……