第8章 异常处理与诊断.pptVIP

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第8章 异常处理与诊断

第8章 异常处理和诊断 学习目标 8.1 处理C++异常 8.2 MFC异常类 1. 例:CFileException 2. CFileException的例子 3. ReportError()的例子 8.3 诊断服务 1. ASSERT 2. VERIFY 3. TRACE 小结 C++异常 MFC异常类 诊断服务 ASSERT VERIFY TRACE 处理C++异常 使用MFC异常类捕获程序异常 使用MFC提供的用于诊断程序的宏调试程序 (1)try块:标志可能会出现异常的代码。 (2)catch块:紧跟着try块,里面包含了处理异常的代码。 (3)throw块 :抛出一个异常,激活catch块中相应的异常处理代码。 第8章 异常处理和诊断 1. 用于异常处理的3个关键字 2. 异常处理实例 第8章 异常处理和诊断 第8章 异常处理和诊断 8.2 MFC异常类 三个成员变量: m_cause:包含与错误原因对应的代码。 m_lOsError:包含相关的操作系统错误码。 m_strFileName:包含出现异常的文件名。 第8章 异常处理和诊断 8.2 MFC异常类 TRY { ? CFile f (pFileName, CFile::modeCreate | CFile::modeWrite ); } CATCH ( CFileException, e ) { ?? if( e-m_cause == CFileException::fileNotFound ) ?????? printf( ERROR: File not found\n); ?? else if( e-m_cause == CFileException:: diskFull) ?????? printf( ERROR: Disk full\n); ?? else if( e-m_cause == CFileException:: endOfFile) ?????? printf( ERROR: End Of File\n); } END_CATCH 第8章 异常处理和诊断 8.2 MFC异常类 CFile fileInput; CFileException ex; if (!fileInput.Open(\\Too\\Many\\Bad\\Dirs.DAT, CFile::modeRead, ex)) { //打开文件失败 ex.ReportError(); } else { // 打开文件成功 fileInput.Close(); } 第8章 异常处理和诊断 MFC提供的用于诊断程序的宏有:ASSERT、ASSERT_KINDOF、ASSERT_VALID、DEBUG_NEW、TRACE、TRACE0、TRACE1、TRACE2、TRACE3、VERIFY。 第8章 异常处理和诊断 8.3 诊断服务 ASSERT( boolean Expression ); 如果参数不为真,这个宏就显示一个诊断信息对话框,并终止程序的运行。如果参数为真,它不做任何事情。 ASSERT仅在MFC的调试(Debug)版本中有效,在MFC的发布(Release)版本中,ASSERT语句不再有效。 第8章 异常处理和诊断 VERIFY( boolean Expression ) ; 如果参数不为真,这个宏就显示一个诊断信息对话框,并终止程序的运行。如果参数为真,它不做任何事情。 在MFC的发布版本中,它仍对参数进行测试,但是当参数为假时,不弹出诊断信息对话框。 8.3 诊断服务 第8章 异常处理和诊断 TRACE( exp ); TRACE是一个在程序运行时跟踪变量数值的便捷方法,它的用法和Printf完全相同,他的输出是Debug窗口。如: int m_value=100; for(int i=0;i5;i++) { m_value++; TRACE(m_value = %d, m_value); } 8.3 诊断服务 第8章 异常处理和诊断

文档评论(0)

3471161553 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档