入门:请输出你在catch里面捕获的异常

原创 2008年10月01日 14:24:00
今天遇到了2个人问我他们的程序运行不对,却找不到问题,说代码都对啊?
我问,有什么异常吗?

回答:没有异常啊?

我问:你知道怎么看异常吗?

回答:我的是个小的数据库程序,我直接在Eclipse里面运行的,没发现有啥错误输出啊?

我问:给我你的代码看看

  请大家看看发过来的代码,我只贴关键部分

 
  1. import java.sql.Connection;
  2. import java.sql.DriverManager;
  3. import java.sql.ResultSet;
  4. import java.sql.Statement;
  5. class T {
  6.   public static void main(String args[]) {
  7.     try {
  8.       Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
  9.       Connection con = DriverManager.getConnection("jdbcdbc:info");
  10.       Statement sql = con.createStatement();
  11.       String condition = "select * from info";
  12.       ResultSet rs = sql.executeQuery(condition);
  13.       rs.last();
  14.       int rowNumber = rs.getRow();
  15.       while (rs.next()) {
  16.         System.out.println(rs.getString("name"));
  17.       }
  18.       con.close();
  19.     } catch (Exception e1) { //######## 我最郁闷的是这里,其它的代码大家可以不用看
  20.     }
  21.   }
  22. }
具体的代码大家无须细看,直接看我最郁闷的部分就行了。

我发现他们好像一个老师教的,都是把 catch部分啥也不写,就好象他们的程序从来不会出错。我对他们看得书,教他们这么做的老师表示强烈的愤怒。

改成如下的代码,增加了错误输出
  1. import java.sql.Connection;
  2. import java.sql.DriverManager;
  3. import java.sql.ResultSet;
  4. import java.sql.Statement;
  5. class T {
  6.   public static void main(String args[]) {
  7.     try {
  8.       Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
  9.       Connection con = DriverManager.getConnection("jdbcdbc:info");
  10.       Statement sql = con.createStatement();
  11.       String condition = "select * from info";
  12.       ResultSet rs = sql.executeQuery(condition);
  13.       rs.last();
  14.       int rowNumber = rs.getRow();
  15.       while (rs.next()) {
  16.         System.out.println(rs.getString("name"));
  17.       }
  18.       con.close();
  19.     } catch (Exception e1) {
  20.       e1.printStackTrace(); //####### 增加错误输出
  21.     }
  22.   }
  23. }
结果抛出了异常
  1. java.sql.SQLException: Result set type is TYPE_FORWARD_ONLY
  2.     at sun.jdbc.odbc.JdbcOdbcResultSet.last(Unknown Source)
是Statement类型错了,修改一下就行了,改成可移动的结果集。
  1. sql = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);


忠告初学者,这些小地方一定要注意,同样的代码,有的人写了,有的人省略了,为什么?如果你不确认,那就写上吧。
一点你的程序出了问题,这个可是你唯一的参考啊。

就算是有经验的朋友,我同样建议你把一些异常输出出来。当然你可以用更好的方式,比如日志之类的。

为了更好地调试你的程序,请输出你在catch里面捕获的异常吧!!!


版权声明:本文为博主原创文章,未经博主允许不得转载。

JAVA Catch中异常信息的输出 System.out.println(e) e.printStackTrace()

java抛出异常的方法有很多,其中最常用的两个: System.out.println(e),这个方法打印出异常,并且输出在哪里出现的异常,不过它和另外一个e.printStackTrace()...
  • CNHK1225
  • CNHK1225
  • 2014年06月20日 16:21
  • 16124

try,catch,throw异常捕捉

try,catch,throw:       try包含你要防护的代码,称为防护块.           防护块如果出现异常,会自动生成异常对象并抛出.              catch捕捉...
  • sgs1018
  • sgs1018
  • 2014年09月05日 22:56
  • 995

无法捕获异常:Java关于在catch中抛出一个异常给外围函数却捕获不到该异常的思考

先给出一串代码: public class TestException { public TestException(){ } boolean testEx()throws Excep...
  • YaoDeBiAn
  • YaoDeBiAn
  • 2017年03月14日 21:13
  • 2276

.“在JAVA中,异常子类必须在它们任何父类之前使用,因为运用父类的catch语句将捕获该类型及其所有子类类型的异常。这样,后面运行子类的catch语句将永远不会到达。而且,Java中不能到达的代码是一个错误。”

.“在JAVA中,异常子类必须在它们任何父类之前使用,因为运用父类的catch语句将捕获该类型及其所有子类类型的异常。这样,后面运行子类的catch语句将永远不会到达。而且,Java中不能到达的代码是...
  • studyvcmfc
  • studyvcmfc
  • 2010年05月22日 14:45
  • 1151

try-catch一次只能捕获一个异常

1. try-catch一次只能捕获一个异常 2.所捕获的异常是可覆盖的,若统一捕获异常,只能捕获到最后一个异常 3.解决方法:针对可能出现异常的地方,单独try-catch。...
  • Miehalu
  • Miehalu
  • 2016年02月06日 11:06
  • 899

关于使用多个 catch 语句捕获多个异常问题

今天看到理工大学的JAVA试题:     当使用多个 catch 语句捕获多个异常时, Java 规定捕获 Exception 的 catch 语句必须排在最后,如下所示:     ...
  • e_wsq
  • e_wsq
  • 2013年09月08日 21:13
  • 2126

Android 中如何捕获未捕获的异常

(一)UncaughtExceptionHandler 1、自定义一个Application , 比如叫MyApplication 继承Application 实现UncaughtExceptionH...
  • u010147215
  • u010147215
  • 2016年04月09日 22:47
  • 2491

VS2010无法捕获try catch的问题 解决

最近将公司的项目从VS2003升级到2010发现一个问题,VS2010编绎发布版本的时候,无法捕获到try catch的问题,导致程序经常挂掉,查了相关资料发现是VS2010发布Release默认不捕...
  • zhaobangyu
  • zhaobangyu
  • 2016年02月27日 15:45
  • 1834

try catch 捕获异常

异常处理的基本思想是简化程序的错误代码,为程序键壮性提供一个标准检测机制。 也许我们已经使用过异常,但是你会是一种习惯吗,不要老是想着当我打开一个文件的时候才用异常判断一下,我知道对你来说你喜欢...
  • qq_25867649
  • qq_25867649
  • 2016年04月07日 14:08
  • 3016

异常的捕获及处理

1.基本概念异常是导致程序中断执行的一种指令流。所有的异常都以类和对象的形式存在。 在其他不使用异常处理机制的语言中要想捕捉异常必须要采用大量的判断语句,而Java中的异常处理机制具有易于使用、可自...
  • qq_34280276
  • qq_34280276
  • 2016年10月24日 22:25
  • 374
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:入门:请输出你在catch里面捕获的异常
举报原因:
原因补充:

(最多只允许输入30个字)