问题标签 [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.
language-agnostic - 先决条件和例外
假设您有一个带有一些前置条件和后置条件的方法。是否可以为每个未完成的前置条件创建一个异常类?例如:不完成 pre1 意味着抛出一个 notPre1Exception 实例。
design-by-contract - 如果按合同进行设计,除了成员函数中的不变量之外,还需要前置条件和后置条件吗?
我知道在 DbC 方法中,前置条件和后置条件附加到一个函数。
我想知道这是否也适用于成员函数。
例如,假设我在每个公共函数的开头使用不变量,成员函数将如下所示:
编辑:(清理我的例子)
是否可以仅对全局/泛型函数使用前置条件和后置条件,而只在类中使用不变量?
这似乎有点矫枉过正,但也许我的例子很糟糕。
编辑:
后置条件不只是检查不变量的子集吗?
在上面,我遵循http://www.digitalmars.com/ctg/contract.html的说明,其中指出:“当类构造函数完成时,在类析构函数的开始,在公共之前检查不变量成员运行,并且在公共函数完成后。”
谢谢。
algorithm - 二分查找
所以,我想更多地了解二进制搜索,因为我不太明白。二进制搜索需要一个先决条件,即数组已排序。我说对了吗?似乎一个方法应该检查这个前提条件,如果不满足就抛出异常。但是,为什么检查前提条件是个坏主意?
c# - 我该如何解释 if (xyz == null) 检查不是“保护性的”
我有一些开发人员经常进行 If null 检查
例如:
在他们的代码中,因为如果有人传入一个为空的参数,他们认为他们正在保护他们的类。我试图告诉他们逻辑中的缺陷,因为如果在这种情况下有人传入 null,这很可能是消费者代码的问题,而不是这个类抛出异常并快速失败,它优雅地处理了不良行为消费者并继续走开。
另一个建议是设置快速失败并抛出异常的前置条件或保护类。任何事情,但忽略消费者可能有其他问题的事实,我帮助掩盖它。
我如何让人们欣赏你的班级不应该如此宽容的事实。如果有人没有传递好的数据,他们应该被告知。
有什么好的文章或建议可以帮助我理解这一点吗?
performance - 慢斯卡拉断言
我们最近一直在分析我们的代码,并且遇到了一些烦人的热点。他们在表格中
因为其中一些断言可以在代码中多次调用,字符串 concat 开始累加。assert
定义为:
为什么不将其定义为:
这样它就会懒惰地评估。鉴于它没有以这种方式定义,是否有一种内联方式来调用带有延迟评估的消息参数的断言?
谢谢
java - 空检查错误消息为“为空”或“为空”
在 Java 代码中进行空值检查时,如果你为空值抛出 IllegalArgumentExceptions,你使用什么样的消息模板?
我们倾向于使用这样的东西
什么更好:“为空”或“为空”,为什么?
对我来说,“is null”感觉更自然。
preconditions - 先决条件还是先决条件?
伙计们,fnc 必须满足才能正常工作的正式名称 PRECONDITION 或 PRECONDITIONS 是什么?
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,这就是我所需要的。以下是我尝试过的简单步骤:
java - 提供给 Google Guava 的 Preconditions.* 方法的正确错误消息是什么?
例如,当使用Preconditions.checkArgument时,错误消息应该反映相关检查的通过情况还是失败情况?
c++ - 功能说明
如果我有这样的 fnc:
当我列出这个 fnc 的前置条件和后置条件时,我认为列出以下形式的前置条件:
SomeType must be of a correct type是相当愚蠢的,不是吗?我要求这样做是因为在我的大学里,他们希望我们列出这样的内容,但是如果 arg 的类型不正确,则代码无论如何都不会编译,所以我认为拥有这种形式的先决条件是错误的。但像往常一样,我错了。