摘要: 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.IO; 6 using System.Xml; 7 using System.Xml.Schema; 8 using System.Xml.Serialization; 9 namespace SerialDict10 {11 [Serializable]12 public class SerialDictionary : Dictionary, IXmlSer... 阅读全文
posted @ 2014-01-07 22:54 Gomen 阅读(2493) 评论(0) 推荐(0) 编辑
摘要: 原文地址:http://blog.csdn.net/starlee/article/details/6649605 在我上篇文章《让程序在崩溃时体面的退出之SEH》中讲解了SEH中try/except可以捕捉异常,避免程序的崩溃,并且可以在处理完异常之后,还能决定进该进程如何执行。对于应用程序的使用者来说,并不知道异常的发生。但是对于软件的开发者来说,虽然避免了程序的崩溃,可是这样可以让程序崩溃的缺陷存在于代码中,就像一个定时炸弹,不知道什么时候会爆炸。要想修复这样的缺陷,首先要找到导致程序崩溃的那行代码。而我在我的那篇《让程序在崩溃时体面的退出之Dump文件》里面介绍了如何用Dump文... 阅读全文
posted @ 2014-01-07 11:49 Gomen 阅读(296) 评论(0) 推荐(0) 编辑
摘要: 原文地址:http://blog.csdn.net/starlee/article/details/6636723 SEH的全称是Structured Exception Handling,是Windows操作系统提供的一种异常处理方式。SEH是属于操作系统的特性,不为特定语言设计,从它的名字就能看出它是一种结构化的异常处理方式。SEH包括了2个部分:终止处理__try/__finally和异常处理__try/__except,下面分别进行介绍。终止处理__try/__finally __try/__finally可以保证无论try块内的代码执行结果如何,finally块内的代码总会被调... 阅读全文
posted @ 2014-01-07 11:48 Gomen 阅读(228) 评论(0) 推荐(0) 编辑
摘要: 原文地址:http://blog.csdn.net/starlee/article/details/6630816 在我的那篇《让程序在崩溃时体面的退出之CallStack》中提供了一个在程序崩溃时得到CallStack的方法。可是要想得到CallStack,必须有pdb文件的支持。但是一般情况下,发布出去的程序都是Release版本的,都不会附带pdb文件。那么我们怎么能在程序崩溃的时候找到出错的具体位置呢?这个时候就该Dump文件出场了!Dump文件是进程的内存镜像,可以把程序运行时的状态完整的保存下来。 要想在程序崩溃的时候创建Dump文件,就需要用到DbgHelp.dll中Win... 阅读全文
posted @ 2014-01-07 11:47 Gomen 阅读(242) 评论(0) 推荐(0) 编辑
摘要: 原文地址:http://blog.csdn.net/starlee/article/details/6618849 在我的那篇《让程序在崩溃时体面的退出之Unhandled Exception》中提供了一个捕捉程序崩溃事件的方法,可以添加代码在程序崩溃的时候做出适当的处理。不过,只知道程序在什么时候崩溃,但是不知道为什么崩溃,这对于程序开发者来说没有任何意义。因为如果不知道程序崩溃的原因,就没法去找到代码中的缺陷,当然就没法去修改代码而避免程序的崩溃。 所有调试过代码的开发者都知道CallStack的重要性。如果在程序崩溃的时候得到CallStack,那么就能定位程序崩溃的具体位置,并最... 阅读全文
posted @ 2014-01-07 11:45 Gomen 阅读(325) 评论(0) 推荐(0) 编辑
摘要: 原文地址:http://blog.csdn.net/starlee/article/details/6613424 程序是由代码编译出来的,而代码是由人写的。人非圣贤,孰能无过。所以由人写的代码有缺陷是很正常的。当然很多异常都在开发阶段被考虑到而添加了处理代码,或者用try/catch对可能出现异常的地方进行额外的照顾。可是,还是会有一些无法预料的异常(Unhandled Exception)在程序运行的时候出现。这些异常很多时候都会招致程序的崩溃。那么有没有什么方法可以让程序在崩溃的时候体面的退出呢?答案是肯定的。可以用Windows API中的SetUnhandledExceptio... 阅读全文
posted @ 2014-01-07 11:44 Gomen 阅读(331) 评论(0) 推荐(0) 编辑