Go homepage(回首页) Upload pictures (上传图片) Write articles (发文字帖)
The author:(作者)qqpublished in(发表于) 2014/7/9 22:40:22 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 Everm_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("正常执行")”在错误产生时也能够执行。
赞