使应用程序在打印断言错误后正常关闭

本文关键字:常关闭 错误 断言 应用程序 打印 | 更新日期: 2023-09-27 17:54:49

在C程序中,我试图测试assert()中的一些条件。我面临的问题是,程序在打印错误信息后崩溃。我不希望那样,我希望应用程序在打印错误信息后正常退出,因为我想将此程序进一步链接到另一个c#程序,我不希望崩溃提示符显示为后台进程。需要帮助!

asssert(10 == func(<some input>));

我用它来检查用户写的函数是否返回预期的答案。当它返回正确答案时,就没问题了。但是当收到错误答案时,我必须在数据库中标记为获得错误答案。但是程序崩溃了,assertionError既不在StandardOutput中也不在StandardOutput

使应用程序在打印断言错误后正常关闭

您必须创建自己的函数或预处理器宏。

调用assert()时,意思是"下面的表达式必须为真,否则程序已进入致命的损坏状态"。因此,响应是终止它,留下一个核心转储,您可以使用它来检查程序的变量并修复导致断言失败的错误。

优雅地处理用户输入是完全不同的任务,完全不适合assert()。除其他原因外,assert()在作为发布版本编译的程序中严格不做任何事情,因此您不应该依赖它来实现程序的实际功能。