查看有关CUDA问题的答案和评论,以及CUDA标记维基,我发现通常建议每个API调用的返回状态都应该检查错误.API文档包括像功能cudaGetLastError
,cudaPeekAtLastError
以及cudaGetErrorString
,但什么是把这些结合在一起,以可靠地捕捉和无需大量额外的代码报告错误的最好方法?
我正在开发一个应用程序,用户必须拨打电话并使用手机键盘输入验证码.
我希望能够检测出他们输入的数字是否正确.电话系统无法访问有效号码列表,而是根据算法(如信用卡号码)验证号码.
以下是一些要求:
鉴于这些要求,您将如何生成这样的数字?
编辑:
@Haaked:代码必须是数字的,因为用户用它的电话键入它.
@matt b:第一步,代码显示在网页上,第二步是调用并输入代码.我不知道用户的电话号码.
Folowup:我发现了几种算法来检查数字的有效性(参见Google代码项目:checkDigits).
我有一个svn服务器,我检查我的计算机中的存储库.
主存储库有大约2k个文件
我已经对很多文件(主要是php)进行了更改,我想确保它们在我提交之前都是有效的.
svn commit -m "i fix the bug #293"
Run Code Online (Sandbox Code Playgroud)
如何一次检查所有文件以确保它们有效且没有php错误,所以我不必手动检查所有这些文件.
用什么算法计算一个数字列表的校验位?
列表的长度在8到12位之间.
另请参阅:
如何生成验证码/号码?
Xcode看着这条线并没有抱怨.项目构建,代码在运行时崩溃.
NSString *randomName = [NSString stringWithFormat:@"%@, %@, %@",
[randomAjectiveList objectAtIndex:ajectiveIndex],
[randomNounList objectAtIndex:nounIndex]];
Run Code Online (Sandbox Code Playgroud)
当然,来考虑它,我有一个太多" %@
"到位,一个更实际的论点.正确的代码应如下所示
NSString *randomName = [NSString stringWithFormat:@"%@, %@",
[randomAjectiveList objectAtIndex:ajectiveIndex],
[randomNounList objectAtIndex:nounIndex]];
Run Code Online (Sandbox Code Playgroud)
我问你,但是为什么Xcode没有抱怨?看起来像param计数器这样显而易见的事情.不应该在编译时检查这个吗?是否特定于" %@
"?
请指教.
我没有看到一种标准方法来检查是否所有选项都在String []输入中提供给apache的CLI库.那是 - 我的选项在命令行都是REUIRED,否则,我想要抛出异常.
我尝试以下作为解决方法,但在if语句中获取Nullpointer异常...
PosixParser p = new PosixParser();
CommandLine cli=p.parse(options,args);
for(Object o : options.getOptions())
{
Option op = (Option)o;
if(cli.getOptionValue(op.getName()))
throw new ParseException("Missing argument ! " + op.getArgName() + ":"+op.getDescription());
}
Run Code Online (Sandbox Code Playgroud)
更新:getOpt()方法似乎提供了参数短名称.
但是,如果我用op.getLongName()替换op.getName()......它可以工作!
无论如何......我有两个问题:
1)为什么一个选项有一个空名称,但是一个非null的longName?
2)有没有办法简单地确保所有选项都提供String []?例如,我想打电话:
if(! options.isAllProvided())
throw new ParseException("You are missing some options ! " + StringUtils.join(userInputArray,','));
Run Code Online (Sandbox Code Playgroud) 我想找出哪个是g ++(4.7)中最极端的错误检查标志组合.我们没有使用新的C++ 11规范,因为我们需要使用较旧的编译器交叉编译代码,而这些较旧的编译器(主要是g ++ 4.0)经常会导致g ++ 4.7忽略的问题.
现在我们使用以下标志集:
-Wall -Wcomment -Wformat -Winit-self -ansi -pedantic-errors \
-Wno-long-long -Wmissing-include-dirs -Werror -Wextra
Run Code Online (Sandbox Code Playgroud)
但是这个组合并不能识别诸如将double传递给期望int的函数或者signed和unsigned int之间的比较之类的问题,这会导致旧编译器阻塞它.
我已经阅读了文档,-Wsign-compare
应该启用-Wextra
但实际上似乎并非如此,所以我可能错过了一些东西......
你做了什么错误检查?实际需要进行哪些错误检查?我们真的需要检查文件是否已成功保存?如果它经过测试并且从第一天起就可以正常工作,它是否应该始终有效?
我发现自己错误地检查每一件小事,而且大部分时间都觉得有点过分.比如检查一个文件是否已成功写入文件系统,检查数据库语句是否失败......这些都不应该是有效的吗?
你做了多少错误检查?是否存在错误检查的元素,因为您相信它只会起作用?
我敢肯定,我记得曾经读过"不要测试那些永远不会发生的事情"的内容......但是不记得来源了.
所有可能失败的事情都应该检查失败吗?或者我们应该相信那些更简单的操作?例如,如果我们可以打开文件,我们是否应该检查每行读取是否失败?也许它取决于应用程序或应用程序本身的上下文.
听到别人做的事情会很有趣.
更新:作为一个简单的例子.我保存了一个表示图库中图像的对象.然后我将图像保存到光盘.如果保存文件失败,即使对象认为有图像,我也必须要显示图像.我可以检查图像保存到光盘的失败然后删除对象,或者将图像保存在事务(工作单元)中 - 但是当使用使用表锁定的数据库引擎时,这会变得很昂贵.
谢谢,
詹姆士.
我想知道如何在Prolog中添加错误检查.例如,我有一个程序可以找到一个列表有多长:
listlen([],0).
listlen([_|T],N) :-
listlen(T,X),
N is X+1.
Run Code Online (Sandbox Code Playgroud)
当它发生时,我如何打印出"第一个参数必须是列表"这样的错误?
error-checking ×10
algorithm ×2
checksum ×2
.net ×1
c# ×1
c++ ×1
cuda ×1
g++ ×1
gray-code ×1
iso-prolog ×1
java ×1
list ×1
objective-c ×1
php ×1
prolog ×1
svn ×1
svn-checkout ×1
syntax ×1