猪爷爷先生 2017-09-07 04:20 采纳率: 100%
浏览 1775
已采纳

简单登录用户检测,为何会提示空指针异常?

service类

//查询帐号结果做判断逻辑,u对象已存有表单参数
public void findUser(User u){
    //1 根据登陆名称查询登陆用户,dao类udsave方法查询该帐号已经可以返回所有信息
    User existUser = udsave.getByUserName(u.getUserName());
    //2 判断用户是否存在.不存在=>提示用户名不存在
    if(existUser==null){
        System.out.println("用户名不存在!");
    }
    //3 判断用户密码是否正确=>不正确=>提示密码错误
    if(!existUser.getUser_password().equals(u.getUser_password())){
        System.out.println("密码错误!");
    }
}

功能实现都没有问题,输入正确帐号和错误密码会显示密码错误
但是输入错误帐号,existUser为null,控制台会打印“用户名不存在”还有空指针异常??
这个空指针异常是怎么来的呢?。。好奇怪啊
  • 写回答

5条回答 默认 最新

  • 砸死接触 2017-09-07 05:31
    关注

    因为打印了“用户名不存在”之后,程序会继续向下进行,下面的existUser.getUser_password() 这个东西就错了,报空指针了!!!

    楼主要么在楼主的第二步判断用户是否存在的if里加return,要么把第三步的if 改成 else if 或者直接放else里,当然有其他方式!!

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥15 电信IPV6 无法外网访问吗
  • ¥15 有偿求效果比较好的遥感影像匹配的c++代码
  • ¥15 博主,你好,我下载了你的智能网联汽车辅助驾驶安全信息检测系统,现在不会运行,可以教我吗,
  • ¥15 怎么在excle输入下列公式
  • ¥15 Arduino,利用modbus的RS485协议,进行对外置的温湿度传感器进行数据读取
  • ¥15 vhdl+MODELSIM
  • ¥20 simulink中怎么使用solve函数?
  • ¥30 dspbuilder中使用signalcompiler时报错Error during compilation: Fitter failed,求解决办法
  • ¥15 没有注册类 (异常来自 HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG))
  • ¥15 知识蒸馏实战博客问题