如何调试"java.lang.NumberFormatException:对于输入字符串:X"在Java中? [英] How to debug "java.lang.NumberFormatException: For input string: X" in Java?

查看:60
本文介绍了如何调试"java.lang.NumberFormatException:对于输入字符串:X"在Java中?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试运行一个程序.我对Java真的很陌生.当我运行程序时,出现以下异常:

I am trying to run one program. I am really very new on Java. When I run my program I am getting following exception:

Description: The server encountered an internal error () that prevented it from fulfilling this request.

Exception: java.lang.NumberFormatException: For input string: ""
    java.lang.NumberFormatException.forInputString(Unknown Source)
    java.lang.Integer.parseInt(Unknown Source)
    java.lang.Integer.parseInt(Unknown Source)
    UpdateSearchRecord.doPost(UpdateSearchRecord.java:56)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717

这是我的代码供您参考:

Here is my code for your reference:

import java.io.IOException;`
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
//import java.sql.ResultSet;
//import java.sql.ResultSetMetaData;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class UpdateSearchRecord
 */
public class UpdateSearchRecord extends HttpServlet {
    private static final long serialVersionUID = 1L;

    /**
     * @see HttpServlet#HttpServlet()
     */
    public UpdateSearchRecord() {
        super();
    }

    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    }

    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.setContentType("text/html");
        PrintWriter out = response.getWriter();

        String uname = request.getParameter("uname");
        String pwd = request.getParameter("pwd");
        String confo = request.getParameter("confo");
        String name = request.getParameter("name");
        String program = request.getParameter("program");
        String country = request.getParameter("country");
        String city = request.getParameter("city");
        String state = request.getParameter("state");
        int pin = Integer.parseInt(request.getParameter("pin"));
        int contact = Integer.parseInt(request.getParameter("contact"));
        String address = request.getParameter("address");
        String idd = request.getParameter("id");
        int id = Integer.parseInt(idd);

        int confor = 0;


        if(uname.equals("") 
            || pwd.equals("") 
            || confo.equals("") 
            || name.equals("") 
            || program.equals("") 
            || country.equals("") 
            || city.equals("") 
            || state.equals("") 
            || address.equals("")){

            out.println("Please insert valid data");
            out.println("<input type=\"text\" value=\"confo\" " + "name=\"confor\">");
            RequestDispatcher rd = request.getRequestDispatcher("UpdateRecord");
            rd.forward(request, response);

        } else {
            confor=Integer.parseInt(confo);
            try {
                Class.forName("oracle.jdbc.driver.OracleDriver");
                Connection con=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe","system","sayam");

                PreparedStatement ps=con.prepareStatement(
"UPDATE SP SET uname=?,pwd=?, confo=?,name=?,program=?, country=?,city=?,state=?,pin=?,contact=?,address=? where id=? ");

                ps.setInt(12,id);
                ps.setString(1,uname); 
                ps.setString(2,pwd);
                ps.setInt(3,confor);
                ps.setString(4,name);
                ps.setString(5,program);
                ps.setString(6,country);
                ps.setString(7,city);
                ps.setString(8,state);
                ps.setInt(9,pin);
                ps.setInt(10,contact);
                ps.setString(11,address);
                //ps.setInt(12,id);

                int i=ps.executeUpdate();
                if(i > 0) {
                    out.print("Record successfully Updated");
                }
            } catch (Exception e) {
                System.out.println(e);
            }
            out.close();
        }  
    }
}

推荐答案

在使用 parseInt()函数之前,您需要检查字符串是否不为空.例如

You need to check whether string is not empty before using parseInt() function. e.g.

if(request.getParameter("pin")!=null && !request.getParameter("pin").equals("")){
    int pin=Integer.parseInt(request.getParameter("pin"));
}

这篇关于如何调试"java.lang.NumberFormatException:对于输入字符串:X"在Java中?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆