C# 违反业务规则和例外

C# 违反业务规则和例外,c#,oop,coding-style,business-logic,C#,Oop,Coding Style,Business Logic,有人能帮我提供一篇文章的链接,或者一篇包含链接的SO帖子的链接,说明为什么对业务规则违规行为进行异常建模不是一个好主意。如果这本书可以在Safari上找到,我也会很乐意参考这本书和这一页,而且这本书的摘录也会很好 我在我看过的问答中看到了很多很好的理由,但是其他人需要一些更权威的东西(在福勒/埃文斯联赛中就更好了) 谢谢虽然我还没有完全阅读这些链接,但我认为这些链接(其中一个来自谷歌图书)应该对您有用,因为它们主要与Ronald G.Ross()编写的建模业务规则有关: 我认为你在任何一本书中

有人能帮我提供一篇文章的链接,或者一篇包含链接的SO帖子的链接,说明为什么对业务规则违规行为进行异常建模不是一个好主意。如果这本书可以在Safari上找到,我也会很乐意参考这本书和这一页,而且这本书的摘录也会很好

我在我看过的问答中看到了很多很好的理由,但是其他人需要一些更权威的东西(在福勒/埃文斯联赛中就更好了)


谢谢

虽然我还没有完全阅读这些链接,但我认为这些链接(其中一个来自谷歌图书)应该对您有用,因为它们主要与Ronald G.Ross()编写的建模业务规则有关:


我认为你在任何一本书中都找不到一个权威性的答案。有些人会说抛出异常在C#中非常昂贵。其他人(比如我)会告诉你不要担心,除非你正在构建一个半实时系统。我在所有主要的企业级系统中都抛出了RuleViolationExceptions,因为我发现这比让域中的每个方法都返回某种错误代码要好得多。事实上,我认为这是一个最佳实践,所以我把它包括在我的项目中

它是否需要在一本书中成为权威!谁这么说的?一篇网络文章是可以的,但它必须来自权威的人/地方。一个关于codeproject/reddit/random的文章链接,这样答案就不够了。(对我来说,一个+20/作者代表10k的SO答案就足够了,但对其他人来说还不够……)人们愿意对接近票数的投票发表评论吗?现在我有了相当于
throw new Exception()
级别的开发信息。感谢您提供的链接,《业务规则方法》这本书的原则看起来是一本不错的读物。我没有看到任何(快速阅读后)表示用异常(编程语言构造)对违反规则的行为进行建模是不好的做法。你在什么地方看到了吗?嗯,这难道不意味着我们走上了一条非“幸福案例”的道路吗?就个人而言,我觉得这个模型是错误的,因为您现在使用一个异常作为BL信息的传输,并且您还面临一个问题,什么是“快乐案例”。您可能会这样做,但我使用类似于收集所有违反业务规则的行为,并将其扔到服务层。