鱼C论坛

 找回密码
 立即注册
查看: 4673|回复: 7

[已解决]java.lang.NumberFormatException: null

[复制链接]
发表于 2020-4-13 19:15:07 | 显示全部楼层 |阅读模式
3鱼币
Type 异常报告

消息 在 [22] 行处理 [/index.jsp] 时发生异常

描述 服务器遇到一个意外的情况,阻止它完成请求。

Exception

org.apache.jasper.JasperException: 在 [22] 行处理 [/index.jsp] 时发生异常

19:     String n1=request.getParameter("n");
20:     double sum=0.0;
21:     double temp=1.0;
22:     int m=Integer.parseInt(n1);
23:     for (int i=1;i<m;i+=2){
24:       sum+=temp/i;
25:       temp=-temp;

Stacktrace:
最佳答案
2020-4-13 19:15:08
看报错提示很明显这里就是类型转换异常,用null去转int了,
  1. String n1=request.getParameter("n");
复制代码
这一行有问题,获取到的值是null,先排查下是不是getParameter("n")获取不到值,如果是获取不到值,确定下你提交的jsp表单里是否有name='n'的控件。

最佳答案

查看完整内容

看报错提示很明显这里就是类型转换异常,用null去转int了,这一行有问题,获取到的值是null,先排查下是不是getParameter("n")获取不到值,如果是获取不到值,确定下你提交的jsp表单里是否有name='n'的控件。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-4-13 19:15:08 | 显示全部楼层    本楼为最佳答案   
看报错提示很明显这里就是类型转换异常,用null去转int了,
  1. String n1=request.getParameter("n");
复制代码
这一行有问题,获取到的值是null,先排查下是不是getParameter("n")获取不到值,如果是获取不到值,确定下你提交的jsp表单里是否有name='n'的控件。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-4-13 19:15:42 | 显示全部楼层
Stacktrace:
        org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:626)
        org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:515)
        org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:385)
        org.apache.jasper.servlet.JspServlet.service(JspServlet.java:329)
        javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
        org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
Root Cause

java.lang.NumberFormatException: null
        java.lang.Integer.parseInt(Integer.java:542)
        java.lang.Integer.parseInt(Integer.java:615)
        org.apache.jsp.index_jsp._jspService(index_jsp.java:132)
        org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
        javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
        org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:477)
        org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:385)
        org.apache.jasper.servlet.JspServlet.service(JspServlet.java:329)
        javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
        org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-4-13 19:25:01 From FishC Mobile | 显示全部楼层
很可能19行那里从request获取数据失败了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-4-13 20:13:46 | 显示全部楼层
倒戈卸甲 发表于 2020-4-13 19:25
很可能19行那里从request获取数据失败了

想知道解决方法,网上查到的用了会出现新的问题
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-4-13 20:39:13 From FishC Mobile | 显示全部楼层
Kasey 发表于 2020-4-13 20:13
想知道解决方法,网上查到的用了会出现新的问题

按理说,根据参数名称获取参数值是request很基础的一个通用方法,使用就两步:从httpservlet拿到request,然后调用该方法。会不会你创建web项目时servlet没配置好。要不网上找个教程重新研究一下怎么配置
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-5-10 13:05:57 | 显示全部楼层
有兴趣可以看看这个码云:https://gitee.com/wen_jun_zhang/agency_completion
自己写的项目  webpack搭建的
全栈 目前还在慢慢写
里面的用户登录 我写完了  会返回用户已保存的数据
你可以参考  我用nodejs写的API
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-9-16 11:22:08 | 显示全部楼层
还有个治本不治根的解决办法,就是加个判断,当获取到值为null时,就给n1赋值0,这样就不担心代码会异常了,规范的代码也应该是这样,String转int是有风险的,你得预知问题出现的可能,做预处理

  1. String n1=request.getParameter("n");
  2. if(n1 == null){
  3. n1 = "0";
  4. }
  5. double sum=0.0;
  6. double temp=1.0;
  7. int m=Integer.parseInt(n1);
  8. for (int i=1;i<m;i+=2){
  9. sum+=temp/i;
  10. temp=-temp;
  11. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-6-4 05:15

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表