gpt4 book ai didi

java - 使用异常或自定义类在java中的两层之间进行通信的最佳方法

转载 作者:行者123 更新时间:2023-11-30 04:00:24 25 4
gpt4 key购买 nike

我正在编写一个应用程序,我对如何在业务层和服务层之间进行通信感到困惑。让我通过举例来阐明我的观点:

createStusdentRecord是服务层中的方法,我从业务层调用它。现在方法1:创建不同的自定义异常并在某些数据丢失等情况下抛出,并在成功时返回studentid,让业务层处理这些异常。

方法2:创建一类SMD(状态消息和数据)并在服务层处理所有异常。将这个SMD返回给业务层,业务层不进行异常处理。

哪种方法更好,为什么?

当我们公开Web服务时应该采取什么方法?

最佳答案

我会采用方法 1。假设调用者可以处理这些真正的异常情况。

我喜欢异常,因为这样就有办法找出失败的原因。隐藏所有错误或仅返回成功/失败的 boolean 值是一种不好的做法。

重点是尝试隐藏尽可能多的内部内容,以隐藏实现细节以及其他层不知道(或想要了解)的内容,但如果出现问题,则用足够的信息来平衡这些内容.

Student s = dao.createStudent(...)

如果给定的参数无效,是否抛出异常?也许取决于它们为什么无效。也许对诸如“具有这些参数的学生已经存在”之类的概念进行自定义异常(exception)是一个好主意。然而,像“参数无效”之类的东西可能是使用 JDK 内置异常之一(如“IllegalArgumentException”)的更好选择。

此外,我将使所有自定义异常都成为父类“DaoException”的子类,以便只关心成功/失败 catch 的客户端代码捕获父类,但需要更细粒度控制的内容始终可以捕获子类。

关于java - 使用异常或自定义类在java中的两层之间进行通信的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22123934/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com