我可以使用异常作为if语句的条件吗?

时间:2016-06-17 02:43:40

标签: java

只是一个简单的问题。是否可以在if语句中使用异常作为条件?我正在验证必须以“yy / mm / dd”写的日期格式。因此,如果用户以“mm / dd / yy”或“dd / mm / yy”格式输入日期,则必须显示错误消息。

这是我的代码:

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子句,但它只返回一个错误,建议删除该子句。

2 个答案:

答案 0 :(得分:0)

我不认为你的代码因为在短语中抛出异常而抱怨。

通过给定的描述和附加的代码,我假设问题是“ServletException”是一个经过检查的异常,这意味着您必须将该异常添加到方法声明中。

答案 1 :(得分:0)

你可以在条件异常的情况下使用exception作为条件,你知道在java中每个异常都有一个名字,编译并执行你的程序并注意异常的名称,然后复制异常的名称在catch语句中,条件应该在try语句中。

如果您的条件没有异常,那么您就不能使用catch语句。 据我所知......