【发布时间】:2014-06-28 16:37:44
【问题描述】:
我正在做一些有问题的作业:
你会如何处理前置条件异常?
您将如何使用后置条件异常?
所以对于第一个问题,我假设前提条件是必须满足的条件才能使函数运行。例如,参数不能为空,我们可以抛出异常:
if (myArg == null)
throw new ArgumentNullException("myArg");
//do work here
但是,我不知道后置条件异常的用途是什么,以及为什么我们要在这种情况下抛出异常(例如,如果不满足条件而不是返回 false)。
任何人都可以为此提供一个例子吗?
【问题讨论】:
-
C# 没有本机前置/后置条件 - 但是,请参阅 Code Contracts:“代码协定提供了一种在代码中指定前置条件、后置条件和对象不变量的方法。前置条件是必须进入方法或属性时满足。后置条件描述方法或属性代码退出时的预期。对象不变量描述处于良好状态的类的预期状态。"
-
我已经编辑了你的标题。请参阅“Should questions include “tags” in their titles?”,其中的共识是“不,他们不应该”。
-
至于“为什么”,我认为从像 Eiffel 这样的语言的角度来看,这是最根深蒂固的:ET: Design by Contract (tm), Assertions and Exceptions(作者 Bertrand Meyer 写了几篇论文并就该主题进行了教学.)
-
我从未听说过“后置条件异常”这个词。你从哪儿弄来的? “后置条件”是业内常用的术语。
标签: c# exception conditional-statements post-conditions