- 1
- 0
- 约1.1千字
- 约 10页
- 2019-05-14 发布于广东
- 举报
第十讲 异常处理机制 苏州大学计算机科学与技术学院 异常处理的必要 程序的正常结束 程序的非正常结束 除数为0 指针越界 为了提供安全和稳定的程序 保证程序在环境条件出现异外或用户操作不当的时候程序也有正确合理的表现,避免出现灾难性后果 C错误处理方式 C的处理方法 返回值是C常用判断方法 if ((p = malloc(n)) == NULL) /* ... */ C++异常处理 异常处理的步骤: 发生异常则暂停正常程序 搜寻处理此异常的代码 执行异常处理代码 将异常处理与正常代码分离,提高程序的可读性、可维护性 当在函数体中检测到异常条件存在,但无法确定相应的处理方法时,将引发一个异常,并由函数的直接或间接调用者处理这个异常 异常的实现 throw 抛出异常 在被调用函数中 try 放入监视异常的语句检测是否触发异常 如果有异常就用throw抛出 catch 捕获匹配的异常 在上层调用函数中 try与catch语句总是结合使用 异常处理器 每个异常处理器,都包含: 一个try 一个或多个throw 一个或多个catch 一个简单的异常处理器 int main(int argc,char *argv[]) { cout”开始”endl; try{ cout”进入try语句块.”endl; throw 200; cout” 不会被执行”endl; } catch(int i){ cout”捕获一个异常,它的值为:”iendl; } cout”结束”endl; return 0; } throw和catch可以不在同一函数中 int Div(int x,int y) { if(y==0) throw y; return x/y; } int main(int argc ,char *argv[]) { try { cout5/2=Div(5,2)endl; cout8/0=Div(8,0)endl; cout7/3=Div(7,3)endl; } catch(int i) { if(i==0) coutException of dividing zero.\n; } coutend; return 0; } 对异常使用… catch(…) 可以捕获一个try抛出的所有异常 不能区分异常的类型 通常与正常catch结合使用于捕获不知类型的异常 * *
您可能关注的文档
- 苏州大学东吴商学院(财经学院)基础会计学课件第三章 复式记账.ppt
- 苏州大学东吴商学院(财经学院)基础会计学课件第十章 财务报表.ppt
- 苏州大学东吴商学院(财经学院)基础会计学课件第四章 基本经济业务的核算.ppt
- 苏州大学东吴商学院(财经学院)基础会计学课件第五章 成本计算.ppt
- 苏州大学东吴商学院(财经学院)基础会计学课件第一章 总论.ppt
- 苏州大学机电工程学院机电一体化系统设计课件 第八章.ppt
- 苏州大学机电工程学院机电一体化系统设计课件 第二章.ppt
- 苏州大学机电工程学院机电一体化系统设计课件 第九章.ppt
- 苏州大学机电工程学院机电一体化系统设计课件 第六章.ppt
- 苏州大学机电工程学院机电一体化系统设计课件 第七章.ppt
最近下载
- 【基恩士】IG 系列 用户手册 (简体中文).pdf VIP
- 安徽财经大学《数值分析》2019-2020学年期末试卷.pdf VIP
- 《律师事务所退伙协议》.docx VIP
- SHS 01037—2019 球形储罐维护检修规程.docx VIP
- 文本教案半潜平台se23dec2012workshop binder.pdf VIP
- 《碳达峰碳中和政策法规汇编(2024年9月刊)》.pdf VIP
- 探索式软件测试方法在敏捷开发中的应用研究.docx VIP
- 中国行业标准 YY/T 1226-2022人乳头瘤病毒核酸(分型)检测试剂盒.pdf
- 延安市各区县地表水系图.pdf VIP
- 2025-2026学年一年级数学上册乐考非纸笔测试题(一)(人教版·新教材).docx VIP
原创力文档

文档评论(0)