我将此问题移至softwareengineering.stackexchange.com,因为它更适合那里。
我正在看弗拉基米尔·霍里科夫(Vladimir Khorikov)的以下视频,该视频建议“远离异常进行重构” pluralsight.com - Applying Functional Principles in C# - Refactoring Away from Exceptions,而使用Result对象。您还可以在这里找到有关它的博客:enterprisecraftsmanship.com - Functional C#: Handling failures, input errors
总结起来,建议是最好返回一个结果对象,然后抛出一个异常。异常应仅用于表示错误。 此方法的参数如下:
另一方面,返回值可以忽略(至少在C#中),而异常不能忽略。
朝这个方向重构现有企业应用程序是个好主意吗?还是不那么激进的方法是更好的方法?(我相信一定要避免使用ValidateUserInput(string input)
这样的方法的返回类型来避免Vexing exceptions)