C++中常见异常错误

EXCEPTION_ACCESS_VIOLATION                  0xC0000005     程序企图读写一个不可访问的地址时引发的异常。例如企图读取0地址处的内存。
EXCEPTION_ARRAY_BOUNDS_EXCEEDED             0xC000008C     数组访问越界时引发的异常。
EXCEPTION_BREAKPOINT                        0x80000003     触发断点时引发的异常。
EXCEPTION_DATATYPE_MISALIGNMENT             0x80000002     程序读取一个未经对齐的数据时引发的异常。
EXCEPTION_FLT_DENORMAL_OPERAND              0xC000008D     如果浮点数操作的操作数是非正常的,则引发该异常。所谓非正常,即它的值太小以至于不能用标准格式表示出来。
EXCEPTION_FLT_DIVIDE_BY_ZERO                0xC000008E     浮点数除法的除数是0时引发该异常。
EXCEPTION_FLT_INEXACT_RESULT                0xC000008F     浮点数操作的结果不能精确表示成小数时引发该异常。
EXCEPTION_FLT_INVALID_OPERATION             0xC0000090     该异常表示不包括在这个表内的其它浮点数异常。
EXCEPTION_FLT_OVERFLOW                      0xC0000091     浮点数的指数超过所能表示的最大值时引发该异常。
EXCEPTION_FLT_STACK_CHECK                   0xC0000092     进行浮点数运算时栈发生溢出或下溢时引发该异常。
EXCEPTION_FLT_UNDERFLOW                     0xC0000093     浮点数的指数小于所能表示的最小值时引发该异常。
EXCEPTION_ILLEGAL_INSTRUCTION               0xC000001D     程序企图执行一个无效的指令时引发该异常。
EXCEPTION_IN_PAGE_ERROR                     0xC0000006     程序要访问的内存页不在物理内存中时引发的异常。
EXCEPTION_INT_DIVIDE_BY_ZERO                0xC0000094     整数除法的除数是0时引发该异常。
EXCEPTION_INT_OVERFLOW                      0xC0000095     整数操作的结果溢出时引发该异常。
EXCEPTION_INVALID_DISPOSITION               0xC0000026     异常处理器返回一个无效的处理的时引发该异常。
EXCEPTION_NONCONTINUABLE_EXCEPTION          0xC0000025     发生一个不可继续执行的异常时,如果程序继续执行,则会引发该异常。
EXCEPTION_PRIV_INSTRUCTION                  0xC0000096     程序企图执行一条当前CPU模式不允许的指令时引发该异常。
EXCEPTION_SINGLE_STEP                       0x80000004     标志寄存器的TF位为1时,每执行一条指令就会引发该异常。主要用于单步调试。
EXCEPTION_STACK_OVERFLOW                    0xC00000FD     栈溢出时引发该异常。

windows系统上的更多相关异常信息详情请见Microsoft Docs:EXCEPTION_RECORD (winnt.h) - Win32 apps | Microsoft Docs

HRESULT 错误代码中的 32 位具有意义,使用户能够进一步了解错误。
第 32 位 (顶部位) 指示是否出错。 这就是为什么错误 0x8 xxxxxxx 的原因。
16-26 位是设施 - 原始 API (Win32、CLR、XAML 等) 。
0-15 位是 (错误) 代码。

常见 HRESULT 值(常见 HRESULT 值 - Win32 apps | Microsoft Docs)

S _ OK              操作成功    0x00000000

E _ ABORT           操作已中止   0x80004004

E _ ACCESSDENIED    常规访问被拒绝错误   0x80070005

E _ FAIL            未指定的失败  0x80004005

E _ HANDLE          无效的句柄   0x80070006

E _ INVALIDARG      一个或多个参数无效   0x80070057

E _ NOINTERFACE     不支持此类接口 0x80004002

E _ NOTIMPL         未实现 0x80004001

E _ OUTOFMEMORY     无法分配必要的内存   0x8007000E

E _ 指针            无效的指针 0x80004003

E _ UNEXPECTED      意外失败    0x8000FFFF

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值