遇到问题要懂得分析
首先
System.out.println("error!");
这句有没运行
如果没有 就说明 根本没到这一步
然后查查db.query(strl);
看看它是不是会抛出异常?
如果不抛出 返回的是什么?一步一步设想按你的本来逻辑它会怎么做 然后为什么不按你设想来运行?
首先
System.out.println("error!");
这句有没运行
如果没有 就说明 根本没到这一步
然后查查db.query(strl);
看看它是不是会抛出异常?
如果不抛出 返回的是什么?一步一步设想按你的本来逻辑它会怎么做 然后为什么不按你设想来运行?
解决方案 »
- 看《深入java类装载》时,有一疑问,请各位大师留步,拜托了
- JRE都在 Jdk\jre\ 目录下吗?那 \JDK\LIB\目录下的内容难道不是JRE的组成部分吗?
- 关于程序中动态编译java文件的问题
- 好奇怪啊,很基础的问题
- 问个StringTokenizer的问题
- 如何编译和运行JAVA?
- 用JDBC可以取到数据库表之间的主外键关系吗?
- 我觉得APPLET不能连接数据库的话就没有什么意思了,还能做什么?
- 一个关于Java的应用问题!
- Openfire 导入MySQL 数据库 A connection to the database could not be made 的问题
- ECLIPSE如何把自己增加的JDBC类和原程序一起打包,急,高分
- java gui的问题
我的目的就是不让它退出循环呀。。在这过程中总会有意外出现。。假设,数据库连上后,就进入了while(true),按常理是不会退也来的,而是一个劲的循环,但如果某一时间段网络断了,或数据库down了,这时我就想如何才能让"while循环"中能捕获到这个错误,也就是查询不到记录,一旦发现查不到了,就强退那个循环,重新连数据库,直到连成功能,再进入那个循环。(我写的那段程序好像就没能按我所想的退出那个循环,重连数据库)
分析了一下:
开始连接数据库正常(连接的是另一台机器上的数据库),查询正常,这时我人为把那台机器的网线拔了,目的是想模拟"网络断"这一状况,以便来查看程序运行情况,这时我发现程序根本没退出循环,也没运行System.out.println("查test表失败!");也没运行System.out.println("error!");当然也没运行break;好你还是在那个循环中后来我又将网线接上后,没过一会,就又能查询数据了这到底是怎么一回事,这错误要如何捕获到呢?
如果用你现在的程序。设置一下Timeout,也许能够让你的程序捕捉到异常。
我再帮你试试。。
setQueryTimeout
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;
}.....