遇到问题要懂得分析
首先
System.out.println("error!");
这句有没运行
如果没有 就说明 根本没到这一步
然后查查db.query(strl); 
看看它是不是会抛出异常?
如果不抛出 返回的是什么?一步一步设想按你的本来逻辑它会怎么做 然后为什么不按你设想来运行?

解决方案 »

  1.   

    String strl="select * from test";只要你的数据库连接正常,test表存在就不会退出循环的。
      

  2.   

    xmvigour(微电-THINKING IN APP) ,我也分析了,只是水平有限,也没分析出个因为所以然来,唉,俺是个新手,还让各位高手们指点一下小弟了
      我的目的就是不让它退出循环呀。。在这过程中总会有意外出现。。假设,数据库连上后,就进入了while(true),按常理是不会退也来的,而是一个劲的循环,但如果某一时间段网络断了,或数据库down了,这时我就想如何才能让"while循环"中能捕获到这个错误,也就是查询不到记录,一旦发现查不到了,就强退那个循环,重新连数据库,直到连成功能,再进入那个循环。(我写的那段程序好像就没能按我所想的退出那个循环,重连数据库)
      分析了一下:
      开始连接数据库正常(连接的是另一台机器上的数据库),查询正常,这时我人为把那台机器的网线拔了,目的是想模拟"网络断"这一状况,以便来查看程序运行情况,这时我发现程序根本没退出循环,也没运行System.out.println("查test表失败!");也没运行System.out.println("error!");当然也没运行break;好你还是在那个循环中后来我又将网线接上后,没过一会,就又能查询数据了这到底是怎么一回事,这错误要如何捕获到呢?
      

  3.   

    不知道可不可行。
    如果用你现在的程序。设置一下Timeout,也许能够让你的程序捕捉到异常。
    我再帮你试试。。
     setQueryTimeout
      

  4.   

    ....... 
      db.driver();
      db.connect();
      try{
      while(true)
      {
        
             String strl="select * from test";
             ResultSet result=db.query(strl); 
             if(result.next())
             {
               System.out.println(result.getString("aaa");
               System.out.println(result.getString("bbb");
              }   
             else 
               System.out.println("查test表失败!");
      }
        }catch(Exception e){
                              System.out.println("error!");
                              break;
                            }.....