问题标签 [preconditions]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
12 回答
3317 浏览

language-agnostic - 先决条件和例外

假设您有一个带有一些前置条件和后置条件的方法。是否可以为每个未完成的前置条件创建一个异常类?例如:不完成 pre1 意味着抛出一个 notPre1Exception 实例。

0 投票
3 回答
2113 浏览

design-by-contract - 如果按合同进行设计,除了成员函数中的不变量之外,还需要前置条件和后置条件吗?

我知道在 DbC 方法中,前置条件和后置条件附加到一个函数。

我想知道这是否也适用于成员函数。

例如,假设我在每个公共函数的开头使用不变量,成员函数将如下所示:

编辑:(清理我的例子)

是否可以仅对全局/泛型函数使用前置条件和后置条件,而只在类中使用不变量?

这似乎有点矫枉过正,但也许我的例子很糟糕。

编辑:

后置条件不只是检查不变量的子集吗?

在上面,我遵循http://www.digitalmars.com/ctg/contract.html的说明,其中指出:“当类构造函数完成时,在类析构函数的开始,在公共之前检查不变量成员运行,并且在公共函数完成后。”

谢谢。

0 投票
6 回答
2019 浏览

algorithm - 二分查找

所以,我想更多地了解二进制搜索,因为我不太明白。二进制搜索需要一个先决条件,即数组已排序。我说对了吗?似乎一个方法应该检查这个前提条件,如果不满足就抛出异常。但是,为什么检查前提条件是个坏主意?

0 投票
9 回答
617 浏览

c# - 我该如何解释 if (xyz == null) 检查不是“保护性的”

我有一些开发人员经常进行 If null 检查

例如:

在他们的代码中,因为如果有人传入一个为空的参数,他们认为他们正在保护他们的类。我试图告诉他们逻辑中的缺陷,因为如果在这种情况下有人传入 null,这很可能是消费者代码的问题,而不是这个类抛出异常并快速失败,它优雅地处理了不良行为消费者并继续走开。

另一个建议是设置快速失败并抛出异常的前置条件或保护类。任何事情,但忽略消费者可能有其他问题的事实,我帮助掩盖它。

我如何让人们欣赏你的班级不应该如此宽容的事实。如果有人没有传递好的数据,他们应该被告知。

有什么好的文章或建议可以帮助我理解这一点吗?

0 投票
4 回答
1590 浏览

performance - 慢斯卡拉断言

我们最近一直在分析我们的代码,并且遇到了一些烦人的热点。他们在表格中

因为其中一些断言可以在代码中多次调用,字符串 concat 开始累加。assert定义为:

为什么不将其定义为:

这样它就会懒惰地评估。鉴于它没有以这种方式定义,是否有一种内联方式来调用带有延迟评估的消息参数的断言?

谢谢

0 投票
4 回答
4933 浏览

java - 空检查错误消息为“为空”或“为空”

在 Java 代码中进行空值检查时,如果你为空值抛出 IllegalArgumentExceptions,你使用什么样的消息模板?

我们倾向于使用这样的东西

什么更好:“为空”或“为空”,为什么?

对我来说,“is null”感觉更自然。

0 投票
2 回答
287 浏览

preconditions - 先决条件还是先决条件?

伙计们,fnc 必须满足才能正常工作的正式名称 PRECONDITION 或 PRECONDITIONS 是什么?

0 投票
2 回答
5932 浏览

matlab - Matlab中特定范围内的对数正态随机数

我想开发一个范围为 [0.42,1.19] 的对数正态分布,它的少数元素给出为D=[1.19,1.00,0.84,0.71,0.59,0.50,0.42]. 平均值0.84和标准差应尽可能小。还给出了 90% 的 cdf(= 90% 的晶粒)介于0.59 and 1.19.

一旦我知道了包含给定条件的对数正态分布的所有元素,我就可以找到它的 pdf,这就是我所需要的。以下是我尝试过的简单步骤:

0 投票
5 回答
1503 浏览

java - 提供给 Google Guava 的 Preconditions.* 方法的正确错误消息是什么?

例如,当使用Preconditions.checkArgument时,错误消息应该反映相关检查的通过情况还是失败情况?

0 投票
4 回答
958 浏览

c++ - 功能说明

如果我有这样的 fnc:

当我列出这个 fnc 的前置条件和后置条件时,我认为列出以下形式的前置条件:
SomeType must be of a correct type是相当愚蠢的,不是吗?我要求这样做是因为在我的大学里,他们希望我们列出这样的内容,但是如果 arg 的类型不正确,则代码无论如何都不会编译,所以我认为拥有这种形式的先决条件是错误的。但像往常一样,我错了。