【问题标题】:Can i get false return type我可以得到错误的返回类型吗
【发布时间】:2018-04-10 01:31:09
【问题描述】:

在 try 块中,我希望状态变量将更改为 true 并发送成功返回。我不想发送错误的返回类型。

相反,如果返回类型为 false,我想抛出错误。 我可以遇到发送错误返回类型的情况

public boolean updateSchool(String username, String password, String school) throws Exception {
        User user = userDao.findByUsername(userName);
        boolean status = false;
        try {
            if (user != null && user.getPassword().equals(password)) {
                user.setSchool(school);
                userDao.save(user);
                status = true;
            }
        } catch (Exception e) {
            e.printStackTrace();

        }
    return status;
}

【问题讨论】:

  • 简单。不要捕获异常。它将向上传递到堆栈。
  • @TrippKinetics 它被重新抛出。
  • 您显然知道如何使用if 以及如何抛出异常。你的问题到底是什么?
  • 顺便说一句,如果返回值始终相同,那么它的意义何在?
  • 在 try 块中,返回类型设置为 true。我不希望状态具有错误值,这就是我想抛出错误的原因。

标签: java exception dao


【解决方案1】:

你可以试试这样的,

public boolean updateSchool(String username, String  password, String school) throws Exception {
        User user = userDao.findByUsername(userName);
        boolean status = false;
        try {
            if (user != null && user.getPassword().equals(password)) {
                user.setSchool(school);
                userDao.save(user);
               status = true;
            }
        } catch (Exception e) {
            e.printStackTrace();
            throw new Exception("Could not update School.");
        }
       finally{
             if(!status){
                 throw new Exception("status is false");
              }
        }
       }
    return status;
}

【讨论】:

    【解决方案2】:

    有两个“问题”:

    1. 重新抛出异常没有意义
    2. 常量返回值没有意义

    最好这样写:

    public void updateSchool(String username, String password, String school) throws Exception {
        User user = userDao.findByUsername(userName);
        if (user != null && user.getPassword().equals(password)) {
            user.setSchool(school);
            userDao.save(user);
        }
    }
    

    此方法要么成功完成,要么在出错时抛出异常

    【讨论】:

    • 问题是我需要在 jsp 页面中使用的返回类型。
    • @karna 为什么需要测试一个始终为真的值?
    猜你喜欢
    • 2020-06-10
    • 2015-10-21
    • 1970-01-01
    • 1970-01-01
    • 2021-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多