使用 Either<Maybe<int>、InformationEntries> 相对于可空值和异常的优势

问题描述 投票:0回答:1

我认为使用 Either/Maybe/InformationEntries 相对于带异常的简单可空类型没有任何显着优势,特别是在 .NET 8 / C# 12 中,其中编译器非常有效地处理可空类型。

对我来说,这种方法似乎不惯用,并且会导致不必要的样板代码。与其害怕例外并试图避免它们,我更愿意拥抱它们。主动抛出异常并将其正确集成到日志记录和面向用户的消息/提示中似乎更有效,并且可以更好地与第三方工具(例如日志记录)和 API 集成。

我在这里错过了什么吗:sample

c# asp.net .net architecture domain-driven-design
1个回答
0
投票

Either
类型对于“可能失败”的方法非常有用。通常,当出现问题时,我们会抛出异常而不是返回“失败值”,这可能与方法返回的类型不同。

抛出异常的性能不高,因此最好从方法中返回一些“失败值”。但是我们的方式存在这种类型冲突 - 这可以通过像

Either
这样的类型来解决,这意味着“两种类型之一”,在我们的场景中意味着“要么成功,要么错误”。

© www.soinside.com 2019 - 2024. All rights reserved.