I wouldn't, I would still put the 3 closes in the finally clause; it's clean, simple and guaranteed to execute. Also, an SQLException can be thrown by more than just a connection close failure. Adding the Exception catch block is okay..
------------------------------------- I would take it a step further.. i.e. public void init() throws ServletException { //start of init try { //start try block.. Context env = (Context) new InitialContext().lookup("java:comp/env"); pool = (DataSource) env.lookup("jdbc/test"); if (pool == null) throw new ServletException("`jdbc/test' is an unknown DataSource"); } catch (NamingException e) { //the DataSource lookup probably failed so say something back to the use java.lang.System.out.println("Cannot lookup DSN on jdbc/test..Aborting"); throw new ServletException(e); } //end catch finally { throw new ServletException(); } } //end init public void doGet(HttpServletRequest req,HttpServletResponse res) throws IOException, ServletException { res.setContentType("text/html"); PrintWriter out = res.getWriter(); Connection conn = null; try { conn = pool.getConnection(); Statement stmt = conn.createStatement(); //at this point we know we have a good stmt or not try { ResultSet rs = stmt.executeQuery("select NAME, PRICE from BROOMS"); out.println("Brooms:<br>"); while (rs.next()) { //spin thru all the records..String then integer out.print(rs.getString(1)); out.print(" "); out.print(rs.getInt(2)); out.println("<br>"); } //end while rs.close(); stmt.close(); } catch(Exception e) //more than likely is is a SQLException but could be NullPointer or anything else.. { //we know something bad happened to resultset or the statement so close them rs.close(); //Resultset closed stmt.close(); //statement closed } //end Exception if (conn!=null) conn.close(); //the connection is now closed... } catch (SQLException e) { java.lang.System.out.println("Connection close caused SQLException cause="+e.getMessage()); throw new ServletException(e); } finally { //catch all for all Exceptions java.lang.System.out.println("Connection code caused general Exception returning back now.."); throw new ServletException(); } } //end doGet Regards, Martin ----- Original Message ----- From: "William W. Nelson" <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]> Sent: Monday, February 03, 2003 12:29 PM Subject: Re: Closing a ResultSet, was "Re: odd oracle error" > rs.close() and stmt.close() should be in the finally block. > > > -------------------------------------------------------------------------- =========================================================================== To unsubscribe: mailto [EMAIL PROTECTED] with body: "signoff JSP-INTEREST". For digest: mailto [EMAIL PROTECTED] with body: "set JSP-INTEREST DIGEST". Some relevant archives, FAQs and Forums on JSPs can be found at: http://java.sun.com/products/jsp http://archives.java.sun.com/jsp-interest.html http://forums.java.sun.com http://www.jspinsider.com