当前位置: 首页 > 知识库问答 >
问题:

返回状态消息

梁丘俊人
2023-03-14

像“addSomething()”这样的类也有方法。这个可以成功也可以不成功。因此,成功的状态可以用一个布尔返回值来显示。但是有时方法调用会因为几个原因而失败。“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;
    }
}

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

共有2个答案

陶炫明
2023-03-14

您可以尝试像任何一种模式一样使用smth。它的用法类似于<code>

谭光辉
2023-03-14

为此,提供一个自己的报告类来提供这样的功能是否有用?

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

但是一般来说,Java中的失败通常是通过使用一些例外来建模的。

因此,在许多情况下,您只需使用< code>void方法。As:刚刚返回的方法表示:“一切都好”。否则,如果有问题,这个方法会抛出一个异常。

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

但请注意:在我看来,真正的问题是:当您考虑以编程方式收集(和使用)此类“进度”信息时,消息字符串很快就会变成问题。人们有时使用数字错误ID有一个很好的理由:以编程方式处理此类情况。字符串只对读字符串的人有意义。

你的代码不能对字符串做太多。记住:做一个< code>contains("this")或< code>contains("that")来决定以后如何对错误(消息)做出反应,这是一个真正的反模式!

 类似资料:
  • 我正在尝试使用BitBucket GIT存储库设置Jenkins,但Jenkins控制台总是给我以下错误代码: 我尝试过很多不同的方法,但总是失败。我的服务器上允许9418端口上的通信量。服务器处于1 Gbps连接上。

  • 本文向大家介绍ajax返回的状态有哪些?相关面试题,主要包含被问及ajax返回的状态有哪些?时的应答技巧和注意事项,需要的朋友参考一下 参考回答: 0 - (未初始化)还没有调用send()方法 1 - (载入)已调用send()方法,正在发送请求 2 - (载入完成)send()方法执行完成,已经接收到全部响应内容 3 - (交互)正在解析响应内容 4 - (完成)响应内容解析完成,可以在客户端

  • 问题内容: 如果我返回一个对象: 状态代码将为200。如何将其更改为201,并显示一条消息并与json对象一起发送? 我不知道是否有一种方法可以在Laravel中设置状态代码。 问题答案: 您可以用来设置HTTP响应代码。 如果未传递任何参数,则http_response_code将获取当前状态码。如果您传递参数,它将设置响应代码。 对于Laravel:

  • 本文向大家介绍HTTP 返回状态码有哪些?相关面试题,主要包含被问及HTTP 返回状态码有哪些?时的应答技巧和注意事项,需要的朋友参考一下 参考回答: 100 Continue 继续。客户端应继续其请求 101 Switching Protocols 切换协议。服务器根据客户端的请求切换协议。只能切换到更高级的协议,例如,切换到HTTP的新版本协议 200 OK 请求成功。一般用于GET与POST

  • 我在一个三元组中使用了< code>this.setState(),并试图找出它返回的内容。文档没有提供任何关于它返回什么的信息。

  • 问题内容: 我已经实现了IErrorHandler来处理在我的宁静WCF服务的构造函数中引发的授权异常。当捕获到一般异常时,将按预期返回我的自定义类型,但是ContentType标头不正确。 但是,当错误处理程序尝试返回401未经授权的http状态代码时,消息正文将覆盖为默认类型,但ContentType标头应为原样。 显然这里有问题,但我不确定是什么。 如何实现IErrorHandler,使其以