下面的程序是我从书上抄写的,其他都没有什么错误,就是在编译时出现try without catch or finally ;}expect;这两个错误;
书上说JSP不会抛出SQLException,可以通过编译,可是在我这里为什么不行呢?
辛苦大家了!!!<%@page contentType="text/html; charset=GBK" errorPage="error.jsp" %>
<%@page import="bookstore.*"%>
<%@page import="java.sql.*"%>
<jsp:useBean id="userBean" scope="page" class="bookstore.User"/>
<jsp:setProperty name="userBean" property="*"/>
<%
  Connection conn = null;
  try {
  conn = DBConnection.getConnection();
  PreparedStatement pstat = conn.prepareStatement(
  "select name from user where id=? and password=?");
  //pstat.setint(1,userBean.getId());
  pstat.setInt(1, userBean.getId());
  pstat.setString(2, userBean.getPassword());
  ResultSet rs = pstat.executeQuery();
  if (rs.next()) {
    userBean.setId(rs.getInt(1));
    session.setAttribute("ses_userBean", userBean);
    %>
    <jsp:forward page="welcome.jsp"></jsp:forward>
    <%
    } else {%>
    <jsp:forward page=""></jsp:forward>
    }
    }
    finally{
    if(conn!=null)
    conn.close();}
%>

解决方案 »

  1.   

    你try了,但是不catch错误。那么就别try了,把try、一对大括号、finally都去掉看看。应该是可以的。
      

  2.   

    我建议你还是重新学习java基础知识,怎么到现在了还不明白异常处理呢?
      

  3.   

    你只是try,又不catch,怎么得到错误呢?
      

  4.   

    try和catch是成对出现的,好的开发工具你只写一个是编译不了的...新手应该学习怎么样更好的运用开发工具.
      

  5.   

    eclipse不加catch也可以编译通过啊.
      

  6.   

    try{}catch(Exception e){
         
    }catch(Exception ee){}finally{}这是捕捉异常的格式,可以多个catch ,楼主自己修改一下吧,很明显是语法错误的。
      

  7.   

    没有catch是正常的。JSP报这个错,可能是你的括号不匹配。
      

  8.   

    <jsp:forward page=""></jsp:forward>
    <% //---这个地方少了个
        }
        }
        finally{
        if(conn!=null)
        conn.close();}
    %>
      

  9.   

    bigc2001(大C) ( ) 信誉:97 
    <jsp:forward page=""></jsp:forward>
    <% //---这个地方少了个
        }
        }
        finally{
        if(conn!=null)
        conn.close();}
    %>
      

  10.   

    连接数据库的时候 try 和catch都要有的..这里很容易出错,自己定义个错误.比方说连接不上啊.什么的.再catch 个Exception e 就OK了..菜鸟没关系.开始用格式后来才用代码么..
      

  11.   

    catch
    catch
    catchcatchcatchcatchcatch
    catch
    catch
    catch
      

  12.   

    可以没有catch的,用try{}finally{}的作用仅仅就是为了执行关闭连接的,无论如何都要关闭,这很正常,并不是没有catch的原因.楼主好好看看程序,可能是jsp那里括号匹配错误!
      

  13.   

    try...catch...finally 是一个组合
      

  14.   

    <%@page contentType="text/html; charset=GBK" errorPage="error.jsp" %>
    <%@page import="bookstore.*"%>
    <%@page import="java.sql.*"%>
    <jsp:useBean id="userBean" scope="page" class="bookstore.User"/>
    <jsp:setProperty name="userBean" property="*"/>
    <%
      Connection conn = null;
      try {
      conn = DBConnection.getConnection();
      PreparedStatement pstat = conn.prepareStatement( "select name from user where id=? and password=?");
       pstat.setInt(1, userBean.getId());
      pstat.setString(2, userBean.getPassword());
      ResultSet rs = pstat.executeQuery();
      if (rs.next()) {
        userBean.setId(rs.getInt(1));
        session.setAttribute("ses_userBean", userBean);
        %>
        <jsp:forward page="welcome.jsp"></jsp:forward>
        <%
        } else {%>
        <jsp:forward page=""></jsp:forward>
       <% }
        }catch(Exception e){
         out.println("gfsdfdsa");
        }
        finally{
        if(conn!=null)
        conn.close();
        }
    %>
    lz,试试
      

  15.   

    谢谢楼上各位的一片关心,刚发完帖子时,我就找到了错误,正像 
     bigc2001(大C)  和 shan1119(大天使,卐~解!) 说得那样,就是
    错在了那里。不过同时也谢谢liuzi123() 写那么多,可惜不是,错在
    那里。
    总而言之,谢谢各位!!!!!!!!!