try {
    Statement stat = con.createStatement();
            stat.execute("CREATE DATABASE test");
    } catch (SQLException ex) {
    ex.printStackTrace();
}
我已经有了一个名为TEST的数据库,现在执行上述代码,程序报错,提示:java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]数据库 'test' 已存在。
虽然提示的SQLException,但并没有进入被catch 到,而是程序直接挂掉.
怎么解决能不让程序挂掉,而是给个提示?

解决方案 »

  1.   

    不能理解怎么会这样,把
    catch (SQLException ex) {改成
    catch (Exception ex) {
    看看能否捕获!
      

  2.   

    谢谢楼上的,Exception也不能捕捉,还是直接挂掉.
      

  3.   

    异常堆栈没打印出来???打印出来就是已经catch到了
      

  4.   

    打印出来了,
    但程序没运行到catch (SQLException ex) {
            ex.printStackTrace();
        }报错是在stat.execute("CREATE DATABASE test");这句上面的.这样程序就直接挂掉了,我想让程序提示错误,而不是挂掉.
      

  5.   

    什么叫挂掉了?? 看代码!
    try {
            Statement stat = con.createStatement();
                stat.execute("CREATE DATABASE test");
            } catch (SQLException ex) {
            ex.printStackTrace();
        }
      System.out.println("我还在运行,我能继续做我的工作!"); // 你增加这一句看看如果那句话能打印出来,就不是什么挂掉,是你的代码逻辑有问题!
      

  6.   

    TO java2000_net ----------挂掉就是程序死在那里不继续执行了啊.那句不能打印了.
      

  7.   

    try {
            Statement stat = con.createStatement();
                stat.execute("CREATE DATABASE test");
            } catch (Exception ex) { // 这里应该修改一下!
            ex.printStackTrace();
            System.out.println("我想继续做我的工作...");
        }
        System.out.println("我还在运行,我能继续做我的工作!"); // 你增加这一句看看
      

  8.   

    Statement stat = con.createStatement();
                stat.execute("CREATE DATABASE test");
    大俠                       創建數據庫test
    你已經有了   怎么創建啊   當然掛掉然后rs就沒返回,怎么可能繼續執行下去啊
      

  9.   

    最后的建议
    1 更新的JDBC版本,也许是BUG也说不定
    2 更新你的JDK到5.0/6.0OVER 祝你好运!
      

  10.   

    现在执行上述代码,程序报错,提示:java.sql.SQLException:   [Microsoft][SQLServer   2000   Driver   for   JDBC][SQLServer]数据库   'test'   已存在。 上面出现的提示,就是由catch语句中的ex.printStackTrace();输出的,说明异常已经被catch到了。
    如果你想给个提示,你可以将catch语句改为:
    catch (SQLException ex) {
            System.out.println("数据库错误");
        }
      

  11.   

    已经到有那个有那个TEST了。...
    再来个CREATE DATEBASE TEST
    不错才怪呢。.
    我就服了。...
      

  12.   

    我没说不让他错啊,
    只是想把这个错误捕捉到.想WINDOS新建文档,如果跟其他同名,不也会提示错误嘛,总不至于WINDOS死机吧.