String id1=smartupload.getRequest().getParameter("id").trim();
int id;
if(id1==null||id1==" "){
id=0;
}else{
// id=Integer.valueOf(id1).intValue();
id=Integer.parseInt(id1);
}
出现问题为:
java.lang.NumberFormatException: For input string: ""
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
at java.lang.Integer.parseInt(Integer.java:468)
at java.lang.Integer.parseInt(Integer.java:497)
at www.oraffi.com.control.HandleEditOrder.continueDoPost(HandleEditOrder.java:100)
at www.oraffi.com.control.HandleEditOrder.doPost(HandleEditOrder.java:62)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Thread.java:619)
可我觉得这问题是不应该出现的,应该是正常的不是?就是不知道问题出在哪,非常需要你们的帮忙,谢谢!
20 个解决方案
#1
if(id1==null||id1==" ")
应修改为
if(id1==null || id1.equals(""))
应修改为
if(id1==null || id1.equals(""))
#2
id可能为空
#3
可是我已经用了if else判断了,如果值为空的话,我直接把0复制给id 啊
#4
试过了,不管用,其实这个我没有引用SmartUpload这个类及对象时,用if else判断id的值时完全没有问题的,可是用SmartUpload上传文件时,就出现了这个问题,是什么问题呢?
#5
你打印看一下:id1 的值是什么?
#6
id的值不为空,是所在数据库表的记录数,但是其他类似用Integer.parseInt()转换的一样出现问题,int quality_a=Integer.parseInt(quality==null||quality.equals("")?"0":quality);
这是从表单获取的值,若值为空时,就出现以上异常了。
#7
太难了,帮你顶。
#8
id1==null||"".equals(id1.trim())
#9
id的值可能不是数字,Integer.parseInt会跳异常
#10
可当我什么都不输入时,我就直接复制0给id啊,这明显是数字
#11
if(id1==null||id1==" ")这句貌似有问题
如果是个字符串 就不能用==来判断 .equels("")
if(id1==null||id1.toString.trim().equels(""))
如果是个字符串 就不能用==来判断 .equels("")
if(id1==null||id1.toString.trim().equels(""))
#12
可能js就没把id字符串提交过来呢
#13
if(id1==null||id1==" ")
应修改为
if(null== id1|| "".equals(id1))
你的报错是无法转为为数字
你的id1有问题啊
应修改为
if(null== id1|| "".equals(id1))
你的报错是无法转为为数字
你的id1有问题啊
#14
id1==" "
#15
[code=java][String id1 = smartupload.getRequest().getParameter("id").trim();
int id;
try {
id = Integer.parseInt(id1);
} catch (Exception e) {
id = 0;
}/code]
int id;
try {
id = Integer.parseInt(id1);
} catch (Exception e) {
id = 0;
}/code]
#16
建议使用commons-lang3包里面的NumberUtils工具类,isEmpty()
#17
int 类型的id需要一个初始值,你可以这样写,先将id=0;然后判断id1不为空是将id1的值再传给id就可以了,不妨一试
#18
String id1=smartupload.getRequest().getParameter("id").trim();
我无语了!!!
这么明显的错误大家居然都没有发现!!
代码分明还没有执行到if else 里面好伐!!
下个断点很明显救出来了!
获取的时候不能trim(),为什么!
因为你获取的可能是null,null怎么可以trim()
呢!
哦,然来是这样的!
我无语了!!!
这么明显的错误大家居然都没有发现!!
代码分明还没有执行到if else 里面好伐!!
下个断点很明显救出来了!
获取的时候不能trim(),为什么!
因为你获取的可能是null,null怎么可以trim()
呢!
哦,然来是这样的!
#19
try catch 捕捉异常
断点调试
基本上BUG是这么一个解决方法
断点调试
基本上BUG是这么一个解决方法
#20
牛逼的判断啊
#21
#1
if(id1==null||id1==" ")
应修改为
if(id1==null || id1.equals(""))
应修改为
if(id1==null || id1.equals(""))
#2
id可能为空
#3
可是我已经用了if else判断了,如果值为空的话,我直接把0复制给id 啊
#4
试过了,不管用,其实这个我没有引用SmartUpload这个类及对象时,用if else判断id的值时完全没有问题的,可是用SmartUpload上传文件时,就出现了这个问题,是什么问题呢?
#5
你打印看一下:id1 的值是什么?
#6
id的值不为空,是所在数据库表的记录数,但是其他类似用Integer.parseInt()转换的一样出现问题,int quality_a=Integer.parseInt(quality==null||quality.equals("")?"0":quality);
这是从表单获取的值,若值为空时,就出现以上异常了。
#7
太难了,帮你顶。
#8
id1==null||"".equals(id1.trim())
#9
id的值可能不是数字,Integer.parseInt会跳异常
#10
可当我什么都不输入时,我就直接复制0给id啊,这明显是数字
#11
if(id1==null||id1==" ")这句貌似有问题
如果是个字符串 就不能用==来判断 .equels("")
if(id1==null||id1.toString.trim().equels(""))
如果是个字符串 就不能用==来判断 .equels("")
if(id1==null||id1.toString.trim().equels(""))
#12
可能js就没把id字符串提交过来呢
#13
if(id1==null||id1==" ")
应修改为
if(null== id1|| "".equals(id1))
你的报错是无法转为为数字
你的id1有问题啊
应修改为
if(null== id1|| "".equals(id1))
你的报错是无法转为为数字
你的id1有问题啊
#14
id1==" "
#15
[code=java][String id1 = smartupload.getRequest().getParameter("id").trim();
int id;
try {
id = Integer.parseInt(id1);
} catch (Exception e) {
id = 0;
}/code]
int id;
try {
id = Integer.parseInt(id1);
} catch (Exception e) {
id = 0;
}/code]
#16
建议使用commons-lang3包里面的NumberUtils工具类,isEmpty()
#17
int 类型的id需要一个初始值,你可以这样写,先将id=0;然后判断id1不为空是将id1的值再传给id就可以了,不妨一试
#18
String id1=smartupload.getRequest().getParameter("id").trim();
我无语了!!!
这么明显的错误大家居然都没有发现!!
代码分明还没有执行到if else 里面好伐!!
下个断点很明显救出来了!
获取的时候不能trim(),为什么!
因为你获取的可能是null,null怎么可以trim()
呢!
哦,然来是这样的!
我无语了!!!
这么明显的错误大家居然都没有发现!!
代码分明还没有执行到if else 里面好伐!!
下个断点很明显救出来了!
获取的时候不能trim(),为什么!
因为你获取的可能是null,null怎么可以trim()
呢!
哦,然来是这样的!
#19
try catch 捕捉异常
断点调试
基本上BUG是这么一个解决方法
断点调试
基本上BUG是这么一个解决方法
#20
牛逼的判断啊