异常和I/O流 一、异常 1、何为异常 在设计、编码甚至测试阶段无法遇见的潜在错误,通常与用户的运行环境、操作方式甚至使用习惯有关。 一、异常 2.如何处理异常? A.异常捕获 try{ 可能引发异常的代码; } catch(异常类型1 异常对象1){ 处理异常类型1的异常; } catch(...){ 处理其他异常类型的异常 } B.异常抛出 throw 异常对象; 一、异常 3.异常处理流程 1)不发生异常 两个不执行:throw语句不执行,catch块不执行 两个执行: throw语句后面的代码执行,引发异常的语句后面的代码执行 2)发生异常 两个不执行:throw语句后面的代码不执行,引发异常的语句后面的代码不执行 两个执行: throw语句执行,catch块执行 异常抛出的流程类似于通过return返回,区别在于返回后不是执行调用语句的下一条语句,而是沿着函数栈回朔,其目的就是为了析构调用路径中的局部对象,直到该异常被catch子句捕获为止,C++的异常处理,将形式上的远程跳转和实际的调用回朔同一起来,即保证代码简洁,同时又避免了内存泄漏。 一、异常 4.异常的使用模式 1)抛出基本类型的异常,通过异常的值区分异常的种类。 2)抛出不同类型的异常,通过异常的类型区分异常的种类。 3)为异常对象附加必要的调试信息,便于事后故障
原创力文档

文档评论(0)