今天遇到了2个人问我他们的程序运行不对,却找不到问题,说代码都对啊?
我问,有什么异常吗?
回答:没有异常啊?
我问:你知道怎么看异常吗?
回答:我的是个小的数据库程序,我直接在Eclipse里面运行的,没发现有啥错误输出啊?
我问:给我你的代码看看
请大家看看发过来的代码,我只贴关键部分
具体的代码大家无须细看,直接看我最郁闷的部分就行了。
我发现他们好像一个老师教的,都是把 catch部分啥也不写,就好象他们的程序从来不会出错。我对他们看得书,教他们这么做的老师表示强烈的愤怒。
改成如下的代码,增加了错误输出
结果抛出了异常
是Statement类型错了,修改一下就行了,改成可移动的结果集。
忠告初学者,这些小地方一定要注意,同样的代码,有的人写了,有的人省略了,为什么?如果你不确认,那就写上吧。
一点你的程序出了问题,这个可是你唯一的参考啊。
就算是有经验的朋友,我同样建议你把一些异常输出出来。当然你可以用更好的方式,比如日志之类的。
为了更好地调试你的程序,请输出你在catch里面捕获的异常吧!!!
我问,有什么异常吗?
回答:没有异常啊?
我问:你知道怎么看异常吗?
回答:我的是个小的数据库程序,我直接在Eclipse里面运行的,没发现有啥错误输出啊?
我问:给我你的代码看看
请大家看看发过来的代码,我只贴关键部分
- import java.sql.Connection;
- import java.sql.DriverManager;
- import java.sql.ResultSet;
- import java.sql.Statement;
- class T {
- public static void main(String args[]) {
- try {
- Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
- Connection con = DriverManager.getConnection("jdbcdbc:info");
- Statement sql = con.createStatement();
- String condition = "select * from info";
- ResultSet rs = sql.executeQuery(condition);
- rs.last();
- int rowNumber = rs.getRow();
- while (rs.next()) {
- System.out.println(rs.getString("name"));
- }
- con.close();
- } catch (Exception e1) { //######## 我最郁闷的是这里,其它的代码大家可以不用看
- }
- }
- }
我发现他们好像一个老师教的,都是把 catch部分啥也不写,就好象他们的程序从来不会出错。我对他们看得书,教他们这么做的老师表示强烈的愤怒。
改成如下的代码,增加了错误输出
- import java.sql.Connection;
- import java.sql.DriverManager;
- import java.sql.ResultSet;
- import java.sql.Statement;
- class T {
- public static void main(String args[]) {
- try {
- Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
- Connection con = DriverManager.getConnection("jdbcdbc:info");
- Statement sql = con.createStatement();
- String condition = "select * from info";
- ResultSet rs = sql.executeQuery(condition);
- rs.last();
- int rowNumber = rs.getRow();
- while (rs.next()) {
- System.out.println(rs.getString("name"));
- }
- con.close();
- } catch (Exception e1) {
- e1.printStackTrace(); //####### 增加错误输出
- }
- }
- }
- java.sql.SQLException: Result set type is TYPE_FORWARD_ONLY
- at sun.jdbc.odbc.JdbcOdbcResultSet.last(Unknown Source)
- sql = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
忠告初学者,这些小地方一定要注意,同样的代码,有的人写了,有的人省略了,为什么?如果你不确认,那就写上吧。
一点你的程序出了问题,这个可是你唯一的参考啊。
就算是有经验的朋友,我同样建议你把一些异常输出出来。当然你可以用更好的方式,比如日志之类的。
为了更好地调试你的程序,请输出你在catch里面捕获的异常吧!!!