abort()头文件
#include<cstdlib >
abort() 函数作用
用于中止当前进程。对于异常的程序终止,我们可以使用abort()函数。
abort() 使用方法
没有参数,没有返回值。
exit()头文件
#include<cstdlib>
exit()作用
终止程序。参数是一个常量,通常表示当前操作系统下未能成功退出的终止代码。参数为0一般表示程序成功终止。
noexcept标识符
noexcept标识符有几种写法:
(1)noexcept 默认表示noexcept(true) 。
(2)noexcept(true) 表示函数不会抛出异常。如果报错,程序直接结束,不会抛出异常信息。
(3)noexcept(false) 表示函数可能抛出异常。
noexcept()函数
noexcept()函数用来检查一个函数是否声明了noexcept。如果声明了noexcept(true)则返回true,如果声明了noexcept(false)则返回false。
noexcept原理
noexcept编译期完成声明和检查工作。noexcept主要解决的问题是减少运行时开销。
运行时开销指的是编译器需要为代码生成一些额外的代码来包裹原始代码,当出现异常时可以抛出一些相关的堆栈错误信息、这里面包含错误位置、错误原因、调用顺序和层级路径等信息。
当使用noexcept声明一个函数不会抛出异常时,编译器就不会去生成这些额外的代码,直接减少了生成文件的大小,间接优化了程序的运行效率。