不可预知的输出

时间:2013-07-29 20:48:49

标签: java-ee

     protected void processRequest(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    response.setContentType("text/html;charset=UTF-8");
    PrintWriter out = response.getWriter();
    try {

       out.println("<html>");

       out.println("<head></head>");
       out.println("<body>");
       String err[]=(String[]) request.getAttribute("error");

       *
  

字符串的错误数组从下一页发送并收到   这一个。但是              如果我尝试在这个地方放置与下面给出的相同代码的for循环              那么即使是表格字段也没有显示我无法理解为什么          我正在使用Netbeans Ide,servlet的名称是:-form,addLeague nad success

*

       out.println("<form action=addLeague method=post>");
       out.println("name:  <input type='text' name='name'>");
       out.println("Season: <input type='text' name='season'>");
       out.println("year <input type='text' name='year'>");
       out.println("submit:<input type='submit' value='save'>");
       out.println("</form>");
        for(int i=0;i<=3;i++)
       {
           if(err[i]!=null)
               out.println("<h1>"+err[i]+"</h1>");
       }
       out.println("</body>");
       out.println("</html>");



    } 

    catch(Exception e)
    {

    }


    finally {            
        out.close();
    }
}

1 个答案:

答案 0 :(得分:0)

这可能会更好,但要注意抓住Exception几乎可以保证让你感到更痛苦。您应该捕获实际发生的异常。

如果您要获得,例如NullPointerExceptionArrayIndexOutOfBoundsException,请添加一些代码以保持形式。在您的情况下,这意味着将后者的i<=3更改为i <= err.length

如果需要捕获某些条件,请捕获特定的异常,例如,NumberFormatExceptionParseException是需要捕获的常见异常。然后,您可以为解析后的输出提供一些默认值(例如,数字为0)或向用户显示错误消息。

try {
   out.println("<html>");
   out.println("<head></head>");
   out.println("<body>");

   String err[]=(String[]) request.getAttribute("error");
   try {
       for(int i=0;i<=3;i++) {
           if(err[i]!=null)
               out.println("<h1>"+err[i]+"</h1>");
       }
   } catch (Exception e) { // This is a bad idea. Use a specific exception.
        e.printStackTrace();
   }

   out.println("<form action=addLeague method=post>");
   out.println("name:  <input type='text' name='name'>");
   out.println("Season: <input type='text' name='season'>");
   out.println("year <input type='text' name='year'>");
   out.println("submit:<input type='submit' value='save'>");
   out.println("</form>");
   out.println("</body>");
   out.println("</html>");
} catch(Exception e) { // Its a bad idea down here too
    e.printStackTrace();
} finally {            
    out.close();
}