0

我将此问题移至softwareengineering.stackexchange.com,因为它更适合那里。

我正在观看 Vladimir Khorikov 的以下视频,该视频建议“重构远离异常” pluralsight.com - Applying Functional Principles in C# - Refactoring Away from Exceptions,而不是使用 Result 对象。您还可以在此处找到有关它的博客:enterprisecraftsmanship.com - 函数式 C#:处理失败、输入错误

总而言之,建议是更喜欢返回结果对象然后抛出异常。异常应该仅用于指示错误。这种方法的论据如下:

  • 抛出异常的方法不是“诚实的”。通过查看方法的签名,您无法识别方法是否会失败。
  • 异常处理增加了很多样板代码。
  • 当异常用于控制流程时,它具有“goto”语义,您可以在其中跳转到特定的代码行。

另一方面,可以忽略返回值(至少在 C# 中),而异常则不能。

朝这个方向重构现有的企业应用程序是个好主意吗?还是一种不太激进的方法更好?(我相信通过使用类似方法的返回类型来确保避免Vexing 异常ValidateUserInput(string input)是有意义的)

4

0 回答 0