只是一个简单的问题。是否可以在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子句,但它只返回一个错误,建议删除该子句。
答案 0 :(得分:0)
我不认为你的代码因为在短语中抛出异常而抱怨。
通过给定的描述和附加的代码,我假设问题是“ServletException”是一个经过检查的异常,这意味着您必须将该异常添加到方法声明中。
答案 1 :(得分:0)
你可以在条件异常的情况下使用exception作为条件,你知道在java中每个异常都有一个名字,编译并执行你的程序并注意异常的名称,然后复制异常的名称在catch语句中,条件应该在try语句中。
如果您的条件没有异常,那么您就不能使用catch语句。 据我所知......