gpt4 book ai didi

Java,返回新的 MyException : anti-pattern?

转载 作者:塔克拉玛干 更新时间:2023-11-02 18:58:52 24 4
gpt4 key购买 nike

在我的类里面,我正在对自定义数据进行验证。许多条件适用。一旦失败,我想抛出一个特定的 MyException。抛出此 MyException 需要许多通用参数和一个自定义参数(基于实际失败)。因此,实际的抛出需要编写许多字符,并且由于代码重复而破坏了整洁性。我也不得不扔它太多次。我决定创建一个私有(private)方法来准备并返回此 MyException 的新实例,并将唯一的自定义数据作为参数,这样代码可以更简洁。

private MyException createMyException(final CustomErrorData errorData)
{
... some info gathering, parameterizing, etc...
return new MyException(errorData);
}

...

所以抛出一个新的 MyException 要短得多:

throw createMyException(errorData);

我的问题是:在这种情况下,防止代码重复的正确做法是什么?我可能过度混淆了异常。

最佳答案

异常工厂 - 以前从未见过,但至少听起来是一个合适的设计。

我只是担心 - 你似乎在设计一个异常抛出框架上付出了很多努力:向异常添加参数、状态等。您真的在代码中遇到那么多异常情况吗?或者您是否在正确处理预期 条件的地方抛出异常?

通常抛出的异常是“仅针对日志”。发生了在当前情况下不应该发生的事情。有些东西,开发人员应该知道并在下一个版本中更正。我们不应该使用异常来处理预期状态。

因此,在研究出色的异常创建代码之前,请仔细检查它是否值得付出努力,或者您的应用程序的设计是否开始变得……太有创意了。

关于Java,返回新的 MyException : anti-pattern?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9602881/

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