windows错误处理机制

一、错误的处理机制

  1.1、在执行每一个函数的时候,会有一个特殊的队列。

  1.2、在这些特殊的队列里面,都会维护一些东西。

  1.3、这些队列是存在内存当中,而内存当中存储的都是一些数值。

  1.4、这些数值就是我们使用GetLastError来获取的数值,

二、GetLastError函数:

  2.1、这个函数是获得最后一个错误。

  2.2、所以我们必须第一时间调用这个函数,才能得到需要的错误。

  2.3、我们可以使用SetLastError函数来给我们自己的函数创建一个error code(错误代码)。

  2.4、这个错误代码可以是Windows给我们的,也可以是我们自己创建的。

  2.5、所以说在我们需要获取错误的时候,及时的调用GetLastError这个函数获得我们想要得到的错误。

三、FormatMessage函数:

  3.1、这个函数经常和GetLastError函数一起配合使用。

  3.2、错误代码都是对应的一些字符串,这些字符串的意义就是指明错误的原因。

  3.3、而这些字符串的存在都是需要分配给空间的。

  3.4、这个函数会自己来分配内存。

时间: 2024-10-12 21:01:17

windows错误处理机制的相关文章

windows程序消息机制(Winform界面更新有关)--转

1. Windows程序消息机制 Windows GUI程序是基于消息机制的,有个主线程维护着消息泵.这个消息泵让windows程序生生不息. Windows程序有个消息队列,窗体上的所有消息是这个队列里面消息的最主要来源.这里的While循环使用了GetMessage() 这个方法,这是个阻塞方法,也就是队列为空时方法就会阻塞,从而这个While循环停止运动,这避免了一个程序把cpu无缘无故的耗尽,让其他程序难以得到响应.当然在某些需要cpu最大限度运动的程序里面就可以使用另外的方法,例如某些

windows程序消息机制(Winform界面更新有关)

windows程序消息机制(Winform界面更新有关) 转自:http://www.cnblogs.com/blosaa/archive/2013/05/31/3109586.html 1. Windows程序消息机制 Windows GUI程序是基于消息机制的,有个主线程维护着消息泵.这个消息泵让windows程序生生不息. Windows程序有个消息队列,窗体上的所有消息是这个队列里面消息的最主要来源.这里的While循环使用了GetMessage() 这个方法,这是个阻塞方法,也就是队列

windows内存详解(一) 全面介绍Windows内存管理机制及C++内存分配实例

十分感谢MS社区的帖子,讲得很好~ http://social.technet.microsoft.com/Forums/zh-CN/2219/thread/afc1269f-fe08-4dc7-bb94-c395d607e536 (一):进程空间 在编程中,很多Windows或C++的内存函数不知道有什么区别,更别谈有效使用:根本的原因是,没有清楚的理解操作系统的内存管理机制,本文企图通过简单的总结描述,结合实例来阐明这个机制. 本文目的: 对Windows内存管理机制了解清楚,有效的利用C+

Map/Reduce 工作机制分析 --- 错误处理机制

前言 对于Hadoop集群来说,节点损坏是非常常见的现象. 而Hadoop一个很大的特点就是某个节点的损坏,不会影响到整个分布式任务的运行. 下面就来分析Hadoop平台是如何做到的. 硬件故障 硬件故障可以分为两种 - JobTracker节点损坏和TaskTracker节点损坏. 1. JobTracker节点损坏 这是Hadoop集群中最为严重的错误. 出现了这种错误,那就只能重新选择JobTracker节点,而在选择期,所有的任务都必须停掉,而且当前已经完成了的任务也必须通通重来. 2.

x86平台上的Windows页表映射机制

首先,在x86架构的处理器上,一个正常页面大小为4KB,非PAE模式下,CR3持有页目录页面的物理地址,PDE和PTE格式相同大小为4字节.此时每个页表页面包含1024个PTE,可以映射1024个页面.而x86的4GB地址空间共包含1M个4KB的页面,映射所有这些页面共需要1024个页表页面,映射这1024个页表页面又需要1个页目录页面.乍看起来我们一共需要1025个页面来管理1M个页面的映射,其实不然. 我们不妨逆向理顺一下思路.首先,我们的地址空间中有1M=1024x1024个页面,而一个页

php中的错误处理机制

1.如果没有错误处理机制会怎样? 案例1: <?php  $fp=fopen("aa.txt","r");//打开文件,没有验证,是否存在该文件?  echo "ok";   ?> 结果: Warning: fopen(aa.txt) [function.fopen]: failed to open stream: No such file or directory in E:\Software_default\wamp_wwwroo

linux系统编程之错误处理机制

在讲解liunx错误处理机制之前我们先来看一段代码: 1 #include<sys/types.h> 2 #include<sys/stat.h> 3 #include<fcntl.h> 4 #include<stdio.h> 5 #include<stdlib.h> 6 7 int main(void) 8 { 9 int fd; 10 fd=open("abc",O_WRONLY); 11 if(fd<0){ 12

关于面向切面编程的部分内容-错误处理机制

错误处理机制. 面对多个web服务器,多线程处理,我们想把错误信息记录到一个txt文档中. 但是把错误信息写到内存是很快.写到硬盘上就有一堆的问题.比如说读写慢.并发问题. 今天我们就利用这个实现错误处理 此文以MVC为例 1.首先要在  golable  文件的  protected void Application_Start() 注册一个错误处理机制. MVC中自带一个  过滤器 FilterConfig.RegisterGlobalFilters(GlobalFilters.Filter

php中错误处理机制

php中,异常处理机制是有限的,无法自动抛出异常,必须手动进行,并且内置异常有限. php把许多异常看作错误,这样就可以把这些异常想错误一样用set_error_handler接管,进而主动抛出异常. 比如以下warning类型的错误是捕获不到的 :   Warning: Division by zero in 1 try{ 2 $a = 5/0; 3 }catch (Exception $e){ 4 echo '错误信息:',$e->getMessage(); 5 } 使用set_error_