assert相关内容

当 assert() 失败时,程序退出代码是什么?

当 assert() 调用失败,使用的退出代码是什么,记录在哪里? 解决方案 C99(在 C11 中未更改)标准规定 assert 调用 abort 和 abort 内容说明了有关返回代码的内容: 状态不成功终止的实现定义形式通过函数调用raise(SIGABRT)返回给宿主环境. 它记录在 C99 标准的第 7.2.1.1 节(断言)和 7.20.4.1(中止)此处. ..
发布时间:2021-11-30 11:28:12 服务器开发

为什么在java中默认不启用断言

我的问题是从语言设计的角度. 为什么断言被区别对待,即它引发错误而不是异常,默认情况下未启用等. 它看起来很优雅(非常主观的意见),易于阅读(再次主观)进行验证和;还有一些工具(IDE)可以对其进行实时评估并根据断言提供警告. 解决方案 我想说的原因是 Java 的默认值是用于生产代码(软件的“发布"版本) - 如果用户需要构建您的他们将使用提供的默认代码,如果您是开发人员并希 ..
发布时间:2021-11-30 11:28:01 Java开发

C++ assert:断言宏中表达式的优先级

在 C++ 中: assert( std::is_same::value );//不编译断言( (std::is_same::value) );//编译 谁能解释一下为什么? 解决方案 逗号被视为宏的参数分隔符,但第二种情况下的括号保护参数.我们可以通过转到 C++ 标准草案部分16.3 宏替换来看到这一点,其中说(强调我的): 由最外层限定的预处理标记序列匹配括号形成类似函数 ..
发布时间:2021-11-30 11:27:53 C/C++开发

assert.h 中的 C++ 断言实现

00001/* assert.h00002 版权所有 (C) 2001, 2003 Free Software Foundation, Inc.00003 由 Stephane Carrez (stcarrez@nerim.fr) 撰写0000400005 本文件为免费软件;您可以重新分发和/或修改它00006 根据 GNU 通用公共许可证条款发布的00007 自由软件基金会;版本 2,或(由您选 ..
发布时间:2021-11-30 11:27:46 C/C++开发

Verilog 中的断言语句

我对 Verilog 完全陌生,请耐心等待. 我想知道 Verilog 中是否有 assert 语句.在我的测试平台中,我希望能够断言模块的输出等于某些值. 例如 mymodule m(in, out);断言(输出 == 1'b1); 谷歌搜索给了我一个几个链接,但它们要么太复杂,要么似乎没有成为我想要的. 解决方案 有一个用于断言的开源库,名为 OVL.然而,它相当沉重. ..
发布时间:2021-11-30 11:27:38 其他开发

是否可以在脚本中设置 python -O(优化)标志?

我想根据脚本的命令行参数在 python 脚本中的 runtime 中设置优化标志 (python -O myscript.py)myscript.py --optimize 或 myscript --no-debug.我想跳过 assert 语句而不将它们全部删除.或者有没有更好的方法来有效地忽略部分 python 代码.在 C++ 中,#if 和 #ifdef 是否有 Python 等价物? ..
发布时间:2021-11-30 11:27:30 Python

在没有 -0 标志的情况下禁用 python 的 assert()

我正在从不同的软件内部运行一个 python 脚本(它提供了一个 python 接口来操作它的数据结构). 我正在优化我的代码以提高速度,并想看看我的断言对性能有什么影响. 我无法使用 python -O.我还有什么其他选择,以编程方式禁用 python 代码中的所有断言?变量 __debug__(由 -O 标志清除)不能分配给 :( 解决方案 文档说, 内置变量 [__ ..
发布时间:2021-11-30 11:27:09 Python

Python 断言——改进了失败的内省?

这是一个相当无用的断言错误;它不会告诉所涉及的表达式的值(假设使用的常量实际上是变量名): $ python -c "assert 6-(3*2)"[...]断言错误 在 Python 中是否有更好的 assert 实现更花哨?它不能引入额外的执行开销(除非断言失败)..并且如果使用 -O 标志必须关闭. 编辑:我知道作为字符串的断言的第二个参数.我不想写一个 .. 因为它是在被断言的表 ..
发布时间:2021-11-30 11:26:59 Python

如何检查方法是否具有属性

我有一个示例类 公共类MyClass{ActionResult 方法 1(){....}[授权]ActionResult 方法 2(){....}[授权]ActionResult Method3(int value){....}} 现在我想要的是写一个返回真/假的函数,可以像这样执行 var controller = new MyClass();Assert.IsFalse(MethodHa ..
发布时间:2021-11-30 11:26:52 C#/.NET

Rails ActiveSupport:如何断言出现错误?

我想在我的一个模型上测试一个抛出特定错误的函数.该函数看起来像这样: def 合并(release_to_delete)raise "不能将一个版本与它自己合并!"if( self.id == release_to_delete.id )提出“只能合并同一艺术家的发布" if( self.artist != release_to_delete.artist )#实际合并代码在这里结尾 现在我想 ..
发布时间:2021-11-30 11:26:46 其他开发

何时使用 assert() 以及何时使用 try catch?

你在什么情况下使用它们? 解决方案 Try... catch - for exceptional conditions,即不是由格式错误的代码引起的情况,但可能会改变外部不可预测事件的正常控制流程. 捕获无效代码的断言,即检查函数中是否包含不变量,检查是否使用正确的参数调用了内部方法(对于公共 API,您可能仍然需要例外)等 这些是我的基本准则,但约定因情况和语言而异. ..
发布时间:2021-11-30 11:26:19 其他开发

如何防止 Debug.Assert(...) 显示模态对话框

我有几个使用 Debug.Assert(...) 的库.我认为 Debug.Assert(...) 很好,我仍然希望它们执行,但我不希望它们阻止我的应用程序的执行.理想情况下,我只希望它们被记录在某个地方. 鉴于我无法更改库的代码(并且我仍然想在调试中编译并运行断言),我该如何防止 Debug.Assert(...)显示模态对话框? 此外,我想确保主程序在 Assert 发生时继续运行 ..
发布时间:2021-11-30 11:26:08 C#/.NET

Python的基本优化模式有什么用?(蟒蛇-O)

Python 有一个标志 -O,你可以用它来执行解释器.该选项将生成“优化的"字节码(写入 .pyo 文件),并给出两次,它将丢弃文档字符串.来自 Python 的手册页: -O 打开基本优化.这会更改文件扩展名用于从 .pyc 到 .pyo 的编译(字节码)文件.两次给予,导致文档字符串被丢弃. 在我看来,此选项的两个主要功能是: 去除所有断言语句.这将防御损坏的程序状态以换取 ..
发布时间:2021-11-30 11:26:00 Python

异常与错误代码与断言

我正在开发一个生成设备报告的库.generate_report (const std::string& no) 成员函数可能由于各种原因失败: 无效的报告编号. 无效状态(report_generator 是 FSM) 没有设备处于活动状态 生成报告时出错 哪种错误处理机制最适合这些错误? 只返回 true 或 false 返回错误代码 断言并记录 抛出异常 以上任 ..
发布时间:2021-11-30 11:25:52 C/C++开发