我经常在C ++面试问题中看到以下术语:
我不确定这些条款之间的区别。有人可以提供清晰简洁的解释吗?
编辑:上下文问题是:“当你两次删除指针时会发生什么?”但是知道这些术语之间的差异对我来说比对我来说更重要答案。
答案 0 :(得分:4)
这些对C ++来说并不特别。
Abort是指由于问题而终止程序或特定操作。有一个C ++库函数std::abort
,继承自C库,它通过外部信号杀死程序,并且不运行析构函数或清理。
出现问题时出错。在C ++中,不一定会立即检测到多种错误。 C ++改为指定未定义的行为,这可能涉及安静的内存损坏,可能会在以后引起神秘的不当行为。
失败是指程序做错了。这是非常通用的工程术语。这个尖头发的老板可能比其他人更熟悉这个概念,因为它是客户真正意识到的唯一一个。
陷阱是指程序检测到错误情况并采取相应措施时。
因此,如果您检测到网络出现故障,并在退出前向用户显示消息,例如“无法继续;您的文档已被自动保存”,那么您已经陷入错误并中止了,但不过有失败。
答案 1 :(得分:0)