【问题标题】:Try/catch error尝试/捕获错误
【发布时间】:2026-02-12 22:20:03
【问题描述】:

我有点不明白为什么我在不使用时遇到了 Try 块错误。

我在代码块底部附近收到错误通知。如果我没有使用 try/catch,有人可以向我解释为什么会这样吗?

它是否告诉我这是我应该使用的而不是 while 循环?

使用 eclipse juno 开发这个 web 应用。

编辑:包装在 try 语句中。但是,现在我收到下面列出的这个错误。删除了更新代码的旧错误注释

如果有人需要更多代码,请告诉我。

此处列出了错误,因此我们可以看到整个文本。在 catch 块上方

错误:在这一行发现了多个注释: - 语法错误,插入“}”完成 类体 - 语法错误,插入“}”完成 堵塞 - 标记“}”的语法错误,删除它 令牌

<tr><td><select name="selBaseCurr">
<%
    while ( ! rs.next()) {
        try{
            if (fEmptyRecordset){
                break;
            }
            if (! fFirstPass){
                rs.next(); //originally rs.getString;
            } else {
                fFirstPass = false;
            }
            if (rs.getString) {
                break;
            }
            if ( ! rs.getString("BASE_CURR_CODE").equals("")){
%>
        <option value="<%=rs.getString("BLMBG_CURR_CODE")%>" <%if (rs.getString("BLMBG_CURR_CODE").trim()) eq (request.getParameter("selBaseCurr").trim());%>selected="true"<%}%>><%=rs.getString("BLMBG_CURR_NAME")%>&nbsp;(<%=rs.getString("BLMBG_CURR_CODE")%>)</option>

<% //Multiple annotations found at this line

        }catch(Exception ex){
            System.out.println(ex);
        }finally{
            if(fFirstPass = true){
        }
            if (! fEmptyRecordset){
            rs.next();//originally rs.getString;
            }
        }
%>

         </select>

【问题讨论】:

  • 这就是问题所在。几乎所有的 JDBC 操作都会抛出某种异常;您应该将代码包装在 try/catch 中
  • ResultSet.next()ResultSet.getString() throw SQLException,你应该在你的代码中尝试 catch。此外,你为什么要在 JSP 页面中编写 Java 代码???
  • 我现在在 JSP 页面中编写代码,我还没有真正在 java 文件中设置类。我正在将 ASP 代码转换为 JSP,所以我有点遵循其他人所做的工作流程。

标签: java eclipse jsp


【解决方案1】:

有一个额外的大括号,导致异常..

<tr><td><select name="selBaseCurr">
<%
while ( ! rs.next()) {
    if (fEmptyRecordset){
        break;
    }
    if (! fFirstPass){
        rs.next(); //originally rs.getString;
    } else {
        fFirstPass = false;
    }
    if (rs.getString) {
        break;
    }
    if ( ! rs.getString("BASE_CURR_CODE").equals("")){
   %>
        <option value="<%=rs.getString("BLMBG_CURR_CODE")%>" 
                <%if (rs.getString("BLMBG_CURR_CODE").trim()) eq        
                    (request.getParameter("selBaseCurr").trim());%>
                    selected="true"
                <%}%>>
        <%=rs.getString("BLMBG_CURR_NAME")%>&nbsp;
        (<%=rs.getString("BLMBG_CURR_CODE")%>)</option>
<%
    }

//    }        This one is extra in your code!!

fFirstPass = true;
if (! fEmptyRecordset)
{
    rs.next();//originally rs.getString;
}
%>

     </select>
</td></tr>

【讨论】:

  • 谢谢,我去掉了那个括号并添加了一个try语句,到目前为止第一个错误已经消失了
【解决方案2】:

Resultset.next() 可以抛出 SQLException;对该方法的任何调用都必须包装在 try/catch 块中。

【讨论】:

    最近更新 更多