Go homepage(回首页)
Upload pictures (上传图片)
Write articles (发文字帖)

The author:(作者)qq
published in(发表于) 2014/7/9 22:40:22
visual c++中的错误处理

visual c++中的错误处理

捕捉错误

1.系统自动捕捉错误

程序在执行过程中产生错误,如果不进行处理,程序很可能会中断离开,无法再回到错误产生前的状况继续执行程序。

在Visual C++开发环境中,如果程序在运行时产生错误,即使用户不进行任何错误处理,VisualC++也会捕捉到这个错误,并以对话框的形式显示异常信息,如果不是致命的错误,会让程序继续执行。

2.用户捕捉错误

虽然Visual C++能够自动捕捉错误并进行处理,但只是进行一般的处理,即避开发生异常的程序代码。它没有排除掉错误发生的原因,如果保持原来的状态再进行相同的操作,仍然会发生同样的错误。为了让程序能够更顺畅的执行,开发人员需要在程序中对可能产生的错误进行处理,当错误产生时,使程序能够按预先目的对错误进行特殊处理

C++中的错误处理

在C++中,当程序产生错误时,系统会自动触发错误,但是开发人员也可以根据需要自行触发错误。在程序中,可以使用Raise指令触发错误,其语法如下:

throw 异常类的实例

& 说明:throw语句应放在错误处理语句,否则,Raise语句之后的程序不会执行,因为该语句触发了错误,程序产生中断,但是用户并没有进行处理,而由系统进行默认的处理。

示例如下:

m_edit.SetWindowText("执行");

throw "触发异常";

m_edit2.SetWindowText("不执行"); // No Excute For Ever

m_edit3.SetWindowText("不执行"); // No Excute For Ever

在上面的代码中,后面的两句代码永远也不会执行,但是如果同样的代码出现在错误处理语句中,情况就不同了。示例如下:

try

{

m_edit.SetWindowText("执行");

throw "触发异常";

}

catch (...)

{

m_edit2.SetWindowText("异常产生时执行"); // Excute when Exception Raise

}

m_edit3.SetWindowText("正常执行"); // Excute Normally

在上面的代码中,语句“m_edit2.SetWindowText("异常产生时执行")”在错误产生时执行,而语句“m_edit3.SetWindowText("正常执行")”在错误产生时也能够执行。




If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)





QQ:154298438
QQ:417480759