返回首页

简介
每个Windows用户一样,你可能已经遭受这恼人的发生一次以上:你的应用程序上工作,然后突然,没有任何合理的解释,应用程序崩溃,系统消息框出现在屏幕上,告诉该应用程序将被终止。这崩溃窗口从一个操作系统向另一个不同:在Windows 98中,例如,下面的文字是显示:"该程序执行了非法操作,将被关闭"。 Windows 2000和Windows NT中,相对于以前版本的Windows,显示的细节问题所造成的异常。例如:"在指令quot; 0x00401000quot;引用内存在quot; 0x00000000quot内存不能被写入。"
然而,有一个在所有Windows操作系统常见的事情:在这种情况下,你失去所有的工作你有自上次保存操作。背景
约有年前,写一个巨大的应用程序的同时,(约93内部项目组成),那里有大约15个线程运行不断,相互沟通,我面临的几个问题。在程序中的大部分时间,它坠毁。
这个问题大多发生在应用程序本身的错误,或在操作系统的组件或库之一。幸运的是,程序员的能力,以避免这种恼人的崩溃,用一个简单的异常处理机制。
Borland的Delphi开发工具,是一种有效的崩溃处理的很好的例子:这个工具创建的可执行文件,有一个特殊的内置异常处理例程,所以只要在Delphi程序发生异常,一个特殊的对话框的德尔福显示。此对话方块包含一些有关的问题所造成的异常信息。用户点击'OK'后,程序继续正常运行。
的Visual C(以及来自微软的其他开发工具)不提供一个像德尔福这样的自动异常处理模块,所以,如果你想避免在您的C / C + +应用程序崩溃,你必须明确地添加异常处理例程您的软件。该ExceptionTest
ExceptionTest的例子演示了如何避免应用程序崩溃,使用__try和__except语句。当您运行该示例时,你会得到一个包含2个按钮的对话框的。第一个按钮引发异常无异常处理块,这将导致应用程序立即崩溃。第二个按钮引发一个__try块内异常。当异常发生时,里面__except语句(GetExceptionInformation)函数被调用。此功能会显示一个特殊的对话框的一个有关异常的信息很少,并允许用户决定他是否要继续运行的程序或终止。用户还可以复制到剪贴板的异常信息。

void HandledExceptionTest() 

{

 __try

 {

  //This function causes the exception

  DoException();

 }

 //If an exception occurs, display our exception dialog:

 __except(ShowExceptionDlg(GetExceptionInformation())) 

 {

  ExceptionFunction();

 }

}

void UnhandledExceptionTest() {

 //This function causes the exception. 

 //Because there is no exception handling here, the program will crash.

 DoException();

}
历史19日,2010年4月初步postnbsp;

回答

评论会员:dotnethelps 时间:2012/01/26
cvbcvb
评论会员:PogoboyMtK 时间:2012/01/26
Plagerism ... http://www.nirsoft.net/作为stebich已经指出
评论会员:。stebich 时间:2012/01/26
在很久以前写的一篇文章copypaste的是什么?好家伙,它指的是Win98和NT!如果你想春天净,得到一个Twitter帐户或东西:P
评论会员:basementman 时间:2012/01/26
1:1复制{A}
评论会员:dotnethero2 时间:2012/01/26
基本上没有物质,没有独创性{ BR}
评论会员:petr3 时间:2012/01/26
没有实质
评论会员:stebich 时间:2012/01/26
无法下载