169it科技资讯


当前位置:  技术问答>java相关

关于try{} catch{} 的概念性问题,谢谢

    来源: 互联网  发布时间:2015-11-21

那为什么我下面这段代码,我已经在方法里面写了try{} catch{}
但还是不行,编译出错,必须在方法名后面加入 throws SQLException才行
public void executeInsert(String sql)
 // throws SQLException
  {
   try
    {
     //conn = DriverManager.getConnection("jdbc:mysql://192.168.100.1:3306/test?, "test", "test");
     conn.setAutoCommit(false);
     stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
     stmt.executeUpdate(sql);
     conn.commit();
    }
    catch(SQLException ex)
     {ex.printStackTrace(System.err);
      conn.rollback();}
    finally
     {
      stmt.close();
      conn.close();
     }
  }

|
finally
     {
      stmt.close();//这里好像也是要的
      conn.close();
     }

finally
     {
       try {
           stmt.close();
           conn.close();
       }
       catch(...){}
     }

|
try
{
  ....
}
catch(Exception e)
{
  System.out.println(e);
}
finally
{
  if(stmt != null)
  {
    try{stmt.close();}catch(Exception e){}
  }
  if(conn != null)
  {
    try{conn.close();}catch(Exception e){}
  }
}

|
try
{
  ....
}
catch(Exception e)
{
  System.out.println(e);
}
finally
{
  if(stmt != null)
  {
    try{stmt.close();}catch(Exception e){}
  }
  if(conn != null)
  {
    try{conn.close();}catch(Exception e){}
  }
}
这个就挺标准了
:)

|
什么语句都可以写!!

尝试一下将finally中的
      stmt.close();
      conn.close();
放到catch中,不要finally了这块看看是否出错??(这时方法名后不需要throws)

|
调用close()方法时就应该在try/catch中调用

|
当然可以写了啊
上面写的例子里的close方法不就是在finally块里的吗?
只不过是必须捕获异常
否则编译时就会出现错误
本页相关标签:

    
相关技术文章:
    ▪请问!!!

     请问,哪里有关于JBuilder的使用教材之类的书籍Download.最好是中文的!!! | A.书名:《Thinking in Java》2e中文版  侯捷 / 王建兴 合译   URL:  http://jjhou.csdn.net/thinking-in-java-20010919.pdf B.书名:JBuilder5中文帮助文件   URL:  http://www.code-labs.com/manual/Jb5cn_help1.rar         http://www.code-labs.com/manual/Jb5cn_help2.rar C.书名:Think in Java(中文版)---chm格式   URL:  http://www.code-labs.com/manual/Think%20In%20Java.chm D.书名:Jbuilder开发人员指南(完整版)   URL:  http://www.java-cn.net/book/books-zip/JbuilderGuide.zip E.书名:Java2编程详解(Special_Ed......


    ▪请教各位高手一个简单的问题----关于常量????

     我学习 java 也有一段时间了,不过到现在为止我还没有找到方法来生成一个真正的常量??????????????? 对于基本类型 我们可以使用 final 来建立常量!! 单对于从 Object 类派生的其他类型数据就只能是使他的指针是常量了. 没有办法使数据对象不可改变了. 比如: fianl Date d = new Date(); 现在我仍然可以改变 d 所表示的时间. 我要怎么才能建立一个真正的常量. | 对啊,C++中也是如此,你刚才的 fianl Date d = new Date(), 实际上d是一个常量句柄,也就是说句柄不能够改变但是其中的内容是可以改变的......


    ▪请教!可能是一个简单的问题。

     请问怎样在一个窗口(JFrame)中以“模态”方式显示另外一个窗口(JFrame)。 | 调用另外一个界面使用jdialog就行,参考一下api关于jdialog的构造器说明就知道,将modal设定为true即可 比如JDialog(Frame owner, boolean modal),假设 原程序界面为frame,调用如下: jdialog1(this,true);   | JFrame没有模态的概念 不过如果想做成这个样子,可以试试下面的思路 设JFrame A和B,A打开B,直到B返回才能执行A 那么可以让A调用B后,进入等待或者休眠状态(线程) 然后在B的退出方法中增加唤醒A的代码,......


 
最新技术文章:
    ▪visual age for java 与 webphere studio 的区别?

     各位大侠:     请问visual age for java 与 webphere studio 的区别? | visual age for java已经不在出新版本了,WSAD是它的下一代产品。 | visual age for java最多到版本4,现在WSAD已经版本5了,WTE也已经到版本5了。 ......


    ▪入门书看完了一本.可还有很多不明白,谁介绍本书我看?

     看完了<JSP动态网页入门实务>,可感觉还好多东西都不懂.有好的书推荐一本.. 探索JSP的小菜鸟..望大家多多指教.因为我实在是太菜了. | jsp核心技术详解 good! ......


    ▪一个数据库操作javabean的问题

     package mydb; import java.sql.*; public class Dbconn { String sDBDriver="org.gjt.mm.mysql.Driver";     String sConnStr="'jdbc:mysql://localhost/sinomos?useUnicode=true&characterEncoding=UTF8','root','123456')";     Connection conn=null;     ResultSet rs=null;     public Dbconn()     {         try{             Class.forName(sDBDriver);         }         catch(java.lang.ClassNotFoundException e)         {             System.err.println(e.getMessage());         }     }    public void executeInsert(String sql)     {         try       ......


 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2017,169IT.COM,E-mail:www_169it_com#163.com(请将#改为@)

浙ICP备11055608号