第2-08讲 异常处理和诊断_第1页
第2-08讲 异常处理和诊断_第2页
第2-08讲 异常处理和诊断_第3页
第2-08讲 异常处理和诊断_第4页
第2-08讲 异常处理和诊断_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、CompanyLOGO第第8章章 异常处理和诊断异常处理和诊断西安国腾天创信息技术有限责任公司西安国腾天创信息技术有限责任公司VC+程序设计程序设计2.0029 81262816ysc_西安国腾天创信息技术有限责任公司西安国腾天创信息技术有限责任公司内容摘要:内容摘要: 处理处理C+C+异常异常 MFCMFC异常类捕获程序异常异常类捕获程序异常 MFCMFC提供的用于诊断程序的宏调式程序提供的用于诊断程序的宏调式程序西安国腾天创信息技术有限责任公司西安国腾天创信息技术有限责任公司8.1 处理C+异 学习目标学习目标 使用使用try、catch、throw三个关三个关字来实现异常处理字来实现异常

2、处理 。 返回第8章西安国腾天创信息技术有限责任公司西安国腾天创信息技术有限责任公司1.try块:标志可能会出现异常的代码。块:标志可能会出现异常的代码。2.catch块:紧跟着块:紧跟着try块,里面包含了处理异常的代块,里面包含了处理异常的代码。码。3.throw块块 :抛出一个异常,激活:抛出一个异常,激活catch块中相应的块中相应的异常处理代码。异常处理代码。西安国腾天创信息技术有限责任公司西安国腾天创信息技术有限责任公司例题例题#include class CExceptpublic:CExcept(int ExCode)m_ExCode = ExCode; int GetCode

3、()return m_ExCode;private:int m_ExCode; 西安国腾天创信息技术有限责任公司西安国腾天创信息技术有限责任公司void main()char ch;trycout at begining of try block n;cout ch;if(ch = y | ch = Y)throw error description; cout ch;if(ch = y | ch = Y)throw 1;西安国腾天创信息技术有限责任公司西安国腾天创信息技术有限责任公司cout ch;if(ch = y | ch = Y)throw 2; cout ch;if(ch = y |

4、 ch = Y)throw CExcept(5); cout ch;if(ch = y | ch = Y)throw 3.14159;cout at end of try block(no exception thrown n;西安国腾天创信息技术有限责任公司西安国腾天创信息技术有限责任公司catch(char *ErrorMsg)cout char * exception thrown; exception message: ErrorMsg n; catch(int ErrorCode)cout int exception thrown; exception code: ErrorCode

5、 n; catch(CExcept Except)cout class CExcept exception thrown; code: Except.GetCode() n;西安国腾天创信息技术有限责任公司西安国腾天创信息技术有限责任公司catch(.)cout unknown type of exception thrown n; cout after last catch block m_cause = CFileException:fileNotFound ) printf( ERROR: File not foundn); else if( e-m_cause = CFileExcep

6、tion: diskFull) printf( ERROR: Disk fulln); else if( e-m_cause = CFileException: endOfFile) printf( ERROR: End Of Filen);END_CATCH西安国腾天创信息技术有限责任公司西安国腾天创信息技术有限责任公司8.3 诊断服务诊断服务 1 使用使用ASSERT宏宏2使用使用VERIFY宏宏3使用使用TRACE宏宏返回第8章西安国腾天创信息技术有限责任公司西安国腾天创信息技术有限责任公司1. 使用ASSERT宏这个宏的用法如下:这个宏的用法如下:ASSERT( booleanExpr

7、ession ); 其中的参数其中的参数booleanExpression是一个表是一个表达式或指针。达式或指针。 如果参数不为真,这个宏就显示一个诊如果参数不为真,这个宏就显示一个诊断信息对话框,并终止程序的运行。如果参断信息对话框,并终止程序的运行。如果参数为真,它不做任何事情。诊断信息按照下数为真,它不做任何事情。诊断信息按照下面的形式显示:面的形式显示:西安国腾天创信息技术有限责任公司西安国腾天创信息技术有限责任公司使用ASSERT宏西安国腾天创信息技术有限责任公司西安国腾天创信息技术有限责任公司2. 使用VERIFY宏这个宏的用法如下:这个宏的用法如下:VERIFY( boolean

8、Expression ) ; 其中的参数其中的参数booleanExpression是一个表是一个表达式或指针。达式或指针。 如果参数不为真,这个宏就显示一个诊如果参数不为真,这个宏就显示一个诊断信息对话框,并终止程序的运行。如果参断信息对话框,并终止程序的运行。如果参数为真,它不做任何事情。诊断信息的显示数为真,它不做任何事情。诊断信息的显示形式与形式与ASSERT 相同:相同:西安国腾天创信息技术有限责任公司西安国腾天创信息技术有限责任公司ASSERT和VERIFFY两个宏之间的差别 ASSERT:仅在仅在MFC的调试(的调试(Debug)版本中有)版本中有效效VERIFFY:在在MFC的发布版本中,它仍对参数进的发布版本中,它仍对参数进行测试行测试 ,但是当参数为假时,不弹出诊,但是当参数为假时,不弹出诊断信息对话框。断信息对话框。 西安国腾天创信息技术有限责任公司西安国腾天创信息技术有限责任公司3. 使用TRACE 宏这个宏的用法如下:这个宏的用法如下:TRACE( exp ); TRACE是一个在程序运行时跟踪变量是一个在程序运行时跟踪变量数值的便捷方法

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论