2016-06-17 3 views
0

簡単な質問です。 if文の条件として例外を使用することは可能ですか?私は "yy/mm/dd"で書かれなければならない日付形式を検証しています。したがって、ユーザーが "mm/dd/yy"または "dd/mm/yy"形式で日付を入力すると、エラーメッセージが表示されます。if文の条件として例外を使用できますか?

は、ここに私のコードです:

String message = null; 

    if (action.equalsIgnoreCase("list")) { 
     try { 

      List<Employee> emp = new ArrayList<Employee>(); 

      GetAllEmployee get = new GetAllEmployee(); 
      SrchName getFName = new SrchName(); 

      String fname = request.getParameter("fname"); 
      String lname = request.getParameter("lname"); 
      String email = request.getParameter("email"); 
      String sDate = request.getParameter("sDate"); 
      String eDate = request.getParameter("eDate"); 

      String search = request.getParameter("search"); 

      if (request.getParameter("page") != null) 
       page = Integer.parseInt(request.getParameter("page")); 
      else { 
       page = 1; 
      } 

      startRow = (recordsPerPage * (page - 1) + 1); 
      endRow = startRow + 9; 

      if (request.getParameter("search") == null) { 
       emp = get.list(startRow, endRow); 

       noOfRecords = get.getNoOfRecords(); 
       message = Integer.toString(noOfRecords) + " results"; 

      } else { 

       if (request.getParameter("sDate") != null 
         || request.getParameter("eDate") != null) { 

        if (!Validator.isValidDate(request 
          .getParameter("sDate")) 
          || !Validator.isValidDate(request 
            .getParameter("eDate")) 
          || !Validator.isValidDate(
            request.getParameter("sDate"), 
            request.getParameter("eDate"))) { 
        } else if (!Validator.isValidDateFormat(request 
          .getParameter("sDate")) 
          || !Validator.isValidDateFormat(request 
            .getParameter("eDate"))) { 
        } 
       } 
       if (sDate != null) { 
        request.setAttribute("sDate", "&start="); 
       } 

       if (eDate != null) { 
        request.setAttribute("eDate", "&end="); 
       } 

       emp = getFName.srchFName(startRow, endRow, fname, lname, 
         email, sDate, eDate); 

        noOfRecords = getFName.getNoOfRecords(); 

         message = "Enter HIRE DATE in valid form"; 

        if(noOfRecords == 0){ 
         message = "There is no search results for the specified conditions"; 
        }else{ 
         if(noOfRecords == 1){ 
          message = Integer.toString(noOfRecords) + " result"; 
         }else{ 
          message = Integer.toString(noOfRecords) + " results"; 
         } 
        } 

       } 

      request.setAttribute("fname", fname); 
      request.setAttribute("lname", lname); 
      request.setAttribute("email", email); 
      request.setAttribute("sDate", sDate); 
      request.setAttribute("eDate", eDate); 
      request.setAttribute("search", search); 

      request.setAttribute("emp", emp); 

      request.setAttribute("message", message); 

      request.getRequestDispatcher("/EmployeeList.jsp").forward(
        request, response); 

     } catch (SQLException e) { 
      throw new ServletException("Cannot obtain Employees from DB", e); 
     } catch (ClassNotFoundException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 
    } 

が、私は例外をcatch節を入れてみましたが、それだけでその句を削除するために示唆され、エラーが返されます。

+1

具体的な質問が何であるか、何をしようとしているのか、起こっているのか、何が起こるのかをより明確に説明する必要があります。 – pvg

+0

'try'ステートメント内のコードブロックが' SQLException'または 'ClassNotFoundException'をスローしない場合は、IDEが削除を指示します。なぜコードを 'try'-' catch'ブロックに入れましたか? –

+0

例外を介して日付文字列を検証しようとしているとします。 if文をチェックしたい行を記述してください。しかし、通常は区別するために例外を使いません。正規表現やヘルパークラスなど、入力を検証するための方法がたくさんあります。 – LynxZh

答えて

0

キャッチフレーズに例外がスローされたためにコードが不平を言っているとは思われません。

説明とコードが添付されていますが、「ServletException」は、例外をメソッド宣言に追加する必要があることを意味するチェック例外です。

0

条件として例外が発生した場合、条件として例外を使用できます。各例外には名前があり、プログラムをコンパイルして実行し、例外の名前を確認してから、 catchステートメントの例外では、条件はtryステートメント内になければなりません。

条件が例外を起こさない場合は、catchステートメントを使用できません。 私が知っている通り...

関連する問題