Servlet中获取数值时出现异常的解决方法

一般Servlet用于准备数据,即从http请求中获取参数值。例如我们要获取一个人的基本信息,那么通常我们事先会有一个Person类里面有属性name、age、address等等,通常情况下age定义为int类型,那么在Servlet中通常用long age = Integer.parsetInt(request.getParameter("age"));来处理,如果用户输入的是数值不会出现问题,但如果用户输入的是非数值那么就会报NumberFormatException运行时异常,这样异常信息就会直接到达客户端,太糟糕了,那么怎么处理呢?

基本思路就是准备一个默认值,如果是非数值的话就用默认值代替,否则就用正确的数值。代码如下:

public class ParamUtils {

    public static long getParameter(ServletRequest request, String name, long defaultValue) {
        String value = request.getParameter(name);
        try {
            return Integer.parseInt(value);
        } catch (NumberFormatException e) {
            return defaultValue;
        }
    }
    
    public static long getParameter(ServletRequest request, String name) {
        return getParameter(request, name, 0);
    }
    
}

你可能感兴趣的:(Servlet中获取数值时出现异常的解决方法)