if语句体中出现错误为什么会直接走else语句体?

当user1.getTaxerId()的值为null的时候为什么直接会走else语句体?

if(password.equals(validatepassword)) {
            // 将user和username放入到session中
            Taxer taxer = td.selectById(user1.getTaxerId());
            session.setAttribute("user", user1);
            session.setAttribute("taxer", taxer);
            session.setAttribute("username", user.getUsername());
            suc.setSuccess(true);
            suc.setmsg("密码正确");
        }else {
            suc.setSuccess(false);
            suc.setmsg("账号或密码错误");
        }

你是怎么判断它走了else呢?

很明显,3行到8行代码有问题绝对不是导致走else语句的原因。
首先定位是否真的有走else中的语句
再排查为什么password.equals(validatepassword)得到的是false。
你描述里的情况不可能发生。