问题标签 [error-checking]

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 投票
9 回答
47859 浏览

algorithm - 如何生成验证码/号码?

我正在开发一个应用程序,用户必须拨打电话并使用手机键盘输入验证码。

我希望能够检测他们输入的数字是否正确。电话系统无法访问有效号码列表,但它会根据算法(如信用卡号码)验证号码。

以下是一些要求:

  • 输入有效的随机码一定很困难
  • 如果我打错字(数字换位,错误数字),一定很难有一个有效的代码
  • 我必须有合理数量的可能组合(比如说 1M)
  • 代码必须尽可能短,以避免用户出错

鉴于这些要求,您将如何生成这样的数字?

编辑 :

@Haaked:代码必须是数字,因为用户是用手机输入的。

@matt b:第一步,代码显示在网页上,第二步是调用并输入代码。我不知道用户的电话号码。

跟进:我发现了几种算法来检查数字的有效性(请参阅这个有趣的 Google 代码项目:checkDigits)。

0 投票
9 回答
261 浏览

error-checking - 错误检查的适当数量是多少?

如果已经在公共接口上检查了输入,是否可以在私有方法中跳过这种错误检查?通常有一些经验法则可以通过......

编辑:

也许 ArgumentNullException 不是一个很好的例子,因为可以使您应该在两个级别都检查但返回不同的错误消息的参数。

0 投票
2 回答
193 浏览

ruby - Ruby 多少错误检查是合适的?

我在 Ruby 中实现了一些东西,我想知道多少错误检查是合适的(或者更准确地说,应该按照惯例进行多少错误检查)?

例如,我正在实现一个交换数组中两个元素的方法。方法很简单:

这真的很简单,但是检查给定索引是否有效是 ruby​​-ish,还是不必要的开销(请记住,我不打算让该方法使用像 -1 这样的环绕值)?

0 投票
5 回答
12079 浏览

algorithm - 使用什么算法来计算校验位?

使用什么算法来计算数字列表的校验位?
列表的长度在 8 到 12 位之间。

另请参阅:
如何生成验证码/号码?

0 投票
5 回答
4805 浏览

c# - .NET 中的格雷码

.NET 框架中的任何地方是否都有内置的格雷码数据类型?或者灰色和二进制之间的转换实用程序?我可以自己做,但如果轮子已经被发明出来......

0 投票
5 回答
240 浏览

error-checking - 错误检查矫枉过正?

你做什么错误检查?实际上需要什么错误检查?我们真的需要检查文件是否保存成功吗?如果从第一天开始就经过测试并且可以正常工作,它不应该总是有效吗?

我发现自己对每一件小事都进行了错误检查,而且大多数情况下感觉有点矫枉过正。诸如检查文件是否已成功写入文件系统,检查数据库语句是否失败............这些不应该是工作还是不工作?

你做了多少错误检查?您是否因为相信它会正常工作而忽略了错误检查的元素?

我确定我记得在某处读过类似“不要测试永远不会真正发生的事情”之类的东西……但不记得出处。

那么是否应该检查所有可能失败的东西是否失败?还是我们应该相信那些更简单的操作?例如,如果我们可以打开一个文件,我们是否应该检查读取每一行是否失败?也许这取决于应用程序中的上下文或应用程序本身。

听听别人怎么做会很有趣。

更新:作为一个简单的例子。我在画廊中保存了一个代表图像的对象。然后我将图像保存到光盘。如果文件保存失败,即使对象认为有图像,我也必须显示图像。我可以检查将图像保存到磁盘是否失败,然后删除对象,或者将图像保存在事务(工作单元)中 - 但是在使用使用表锁定的数据库引擎时,这可能会变得昂贵。

谢谢,

詹姆士。

0 投票
1 回答
107 浏览

php - 错误检查以确保字段不为空?

我的网站有一个选择加入的会员目录。目前,错误检查功能只是查看表单 $_POST 来查看if (!empty($userRealName)),然后允许该成员出现在列表中。

某人在列表中显示为空白名称大约需要 30 分钟,在检查数据库后,我确定这是因为他们的“真实姓名”是 - 换句话说,一个空格。

所以,很明显,这通过我的简单!empty()检查。我该从哪里去强制需要在目录中列出名称的用户?

0 投票
7 回答
277 浏览

error-handling - 当您编写代码时,您是主动还是被动地处理错误?

换句话说,您是花时间预测错误并编写代码来解决这些潜在问题,还是按照您认为合适的方式编写代码,然后逐个问题地解决任何错误?

我最近一直在思考这个问题,我是一个非常被动的人。我编写代码,试一试,返回纠正错误并重复,直到应用程序按预期工作。然而,我的一位朋友提出,他会花时间思考如何解释每一行并在错误发生之前修复它们。

我必须指出,re-active 是纯粹的 PRE-live。我肯定会确保我的应用程序在它上线之前可以正常工作。

0 投票
4 回答
1210 浏览

c - C: Throw error on parameter check or let it hit the fan?

I have a simple design(?) question.

I'm writing a simple program, that has a couple of functions that look like these.

I have a couple of questions on this, with no intention of re opening some holy war.

Should I add a sanity check on the n ? If so, how should I let the caller know?

Returning -1 looks weird on floats;

My other option is an out parameter

update

This is kind of a toy program, just trying to practice some stuff. The question excedes that fact. Maybe I should rephrase to "how to handle errors without (OOP) exceptions".

Also considering testing n before doing the call, but don't like it as much.

Any thoughts? Thanks in advance.

0 投票
2 回答
5572 浏览

c++ - 有什么理由使用运行时断言而不是编译时断言?

在查看 Visual C++ 代码库时,我发现了以下奇怪的事情。在可以在编译时评估条件的情况下使用运行时断言(检查条件并在违反条件时抛出异常):

很明显,编译器将评估条件并替换有效的代码

什么都不做或

每次控制通过该行时都会引发异常。

IMO 应该使用编译时断言,原因如下:

  • 它会更早地暴露条件违规 - 在编译时 - 并且
  • 它会让更干净(因此更快更小)的机器代码被发出

看起来编译时断言是唯一正确的事情。是否有任何可能的理由在这里更喜欢运行时断言?