这里是代码
if(var!=null) {
int varInt= Integer.parseInt(var);
method.setProp(varInt);
}
经过一些研究,当我们不测试 null 时,它通常会抛出错误,但我是,所以有什么问题?
错误
org.apache.jasper.JasperException: An exception occurred processing JSP page /TravelSearch.jsp at line 81
80: if(var!=null) {
81: int varInt= Integer.parseInt(var);
82: method.setProp(varInt);
83: }
84:
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:567)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:469)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:396)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:340)
javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
cause mère
java.lang.NumberFormatException: For input string: ""
看看Jon Skeet的这个答案。
https://stackoverflow.com/a/1486082/891261
这就是您想要的 - 一种方法,用于检查字符串是否可以解析为数字,并在不能解析时返回明显的非法值,然后您可以检查并对其执行操作。
您尝试解析的数字不是空的,它是一个空字符串""
。 堆栈跟踪在这里告诉你:
java.lang.NumberFormatException: For input string: ""
更改测试以执行此操作:
if(var!=null && !"".equals(var)) {