学习笔记之错误处理

错误处理机制:

当调用windows函数时,它会先检验我们传递给它的参数,然后才开始执行任务。如果传入的参数无效或者由于其他原因导致操作系统无法执行,则函数的返回值将指出函数因为某些原因失败了。而当调用windows函数检测到错误时,它会使用一种名为“线程本地存储区”的机制将相应的错误码与“主调线程”想关联。(即学习笔记之线程基础所说,每一个线程都有自己的数据存储区,而函数将其错误码填入线程的数据存储区的错误代码内容,使其想关联)这种机制可以是线程之间能独立运行, 不会互相干扰对方的错误代码。

查看错误代码:

每一个错误都有3种表示:一个错误代码id;错误描述文本,一个编码(避免使用,应用错误代码id)

当调用一个windows函数过后,程序可以通过调用函数:

DWORD GetLastError();

来获取错误代码ID,然后可以使用Visual Studio编译器的一个外部工具错误查找工具(工具/错误查找工具)来查询错误描述文本,以明确程序的错误。

 

错误查找工具的实现:

错误查找工具的具体实现主要依赖于函数:

DWORD WINAPI FormatMessage(
  __in          DWORD dwFlags,
  __in          LPCVOID lpSource,
  __in          DWORD dwMessageId,
  __in          DWORD dwLanguageId,
  __out         LPTSTR lpBuffer,
  __in          DWORD nSize,
  __in          va_list* Arguments
);

此函数通过错误代码ID来获取错误文本描述。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值