java - 返回状态消息

标签 java return-value

类中有一些方法,例如“addSomething()”。这可以成功也可以不成功。因此,可以使用 boolean 返回值显示成功状态。但有时由于多种原因,方法调用可能会失败。 “false”显示了这一点,但只是以一般方式。有时程序员想知道失败的原因。为此目的,提供一个自己的报告类来提供类似的功能是否有用?

public class Report {
    private final boolean success;
    private final String message;

    public Report(boolean success) {
        this.success = success;
        this.message = "empty message";

    }

    public Report(boolean success, String message) {
        this(success);
        this.message = message;
    }

    public boolean wasSuccessful() {
        return success;
    }

    public String getMessage() {
        return message;
    }
}

然后您可以决定是否要使用“wasSuccessful()”获取一般成功报告,或者是否还想使用“getMessage()”记录确切原因。

最佳答案

Is it, for this purpose, useful to provide an own report class that offers functionality like that?

“有用性”是主观的。如果以上内容很好地解决了您的特定问题,那么它当然是有用的,并且可能是一个很好的方法。

但一般来说,Java 中的失败 通常是通过使用某些麦芽汁的异常来建模的。

因此,在许多情况下,您只需使用 void 方法即可。如:刚刚返回的方法意味着:“一切都很好”。否则,如果出现问题,该方法会向您抛出异常。

现在,如果另一方面,您遇到方法可能通过或失败的情况,并且两种结果都完全正确(例如,如果某些方法检查是否存在可选参数),然后确定:您的方法可能会有用。您只需允许为每个对您重要的方法调用添加新的 Report 对象。然后调用该方法的任何人都可以创建 Report 对象并将它们添加到某些特定于上下文的 ReportCollector

但请注意:我眼中的真实问题:当您考虑以编程方式收集(和使用)此类“进度”信息时,消息字符串很快就会变成问题。人们有时使用numerical 错误 id 是有充分理由的:以启用对此类情况的编程处理。字符串只对阅读它们的人有意义。

您的代码不能对字符串做太多事情。请记住:执行 contains("this")contains("that") 以确定稍后如何对错误(消息)使用react,这是一个真正的反模式!

关于java - 返回状态消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56903006/

相关文章:

java - org.hibernate.id.IdentifierGenerationException : ids for this class must be manually assigned before calling save()

java - StringRedisTemplate 上的 Spring Data Redis : java. lang.NullPointerException

java - Ubuntu 14.04、Eclipse 4.5.1、Java 和 Batik

java.sql.SQLException : Access denied for user 'root' @'localhost' (using password: YES) 异常

javascript - 返回值返回为未定义

Java 记录器 - 标记的撇号问题

javascript - 让 JavaScript 中的赋值操作返回分配的值背后的意图/想法是什么?

javascript - 如何在 inputText 中显示指定值?(XPages)

c++ - 编写返回 C++ 对象的函数的最佳方法是什么?

java - 在cmd中do while循环显示内容3次