c++异常处理习题答案_第1页
c++异常处理习题答案_第2页
c++异常处理习题答案_第3页
c++异常处理习题答案_第4页
c++异常处理习题答案_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

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

文档简介

1. 概念填空题 1.1C+程序将可能发生异常的程序块放在 try 中,紧跟其后可放置若干个对应的 catch ,在前面所说的块中或块所调用的函数中应该有对应的 throw ,由它在不正常时抛出 异 常 ,如与某一条 catch 类型相匹配,则执行该语句。该语句执行完之后,如未退出程序, 则执行 catch 后续语句 。如没有匹配的语句,则交给 C+标准库中的 termanite 处理。 1.2 throw 表达式的行为有些像函数的 函数调用 ,而 catch 子句则有些像函数的 函数定 义 。函数的调用和异常处理的主要区别在于:建立函数调用所需的信息在 编译 时已经 获得,而异常处理机制要求 运行 时的支撑。对于函数,编译器知道在哪个调用点上函数 被真正调用;而对于异常处理,异常是 随机 发生的,并沿调用链逆向 查找异常处理子句, 这与 运行时的 多态是 不一样的 。 2.简答题 2.1 C+中的异常处理机制意义,作用是什么? 2.2 当在 try 块中抛出异常后,程序最后是否回到 try 块中继续执行后面的语句? 2.3 什么叫抛出异常? catch 可以获取什么异常参数?是根据异常参数的类型还是根据参数 的值处理异常?请编写测试程序验证。 2.4 为什么 C+要求资源的取得放在构造函数中,而资源的释放在析构函数中? 3选择题 3.l 下列关于异常的叙述错误的是( A) 。 A编译错属于异常,可以抛出 B运行错属于异常 C硬件故障也可当异常抛出 D只要是编程者认为是异常的都可当异常抛出 3.2 下列叙述错误的是( ) 。 Athrow 语句须书写在时语句块中 Bthrow 语句必须在 try 语句块中直接运行或通过调用函数运行 C一个程序中可以有 try 语句而没有 throw 语句 Dthrow 语句抛出的异常可以不被捕获 3.3 关于函数声明 float fun(int a ,int b)throw ,下列叙述正确的是( ) 。 A表明函数抛出 float 类型异常 B表明函数抛出任何类型异常 C表明函数不抛出任何类型异常 D表明函数实际抛出的异常 3.4 下列叙述错误的是() 。 Acatch ()语句可捕获所有类型的异常 B一个 try 语句可以有多个 catch 语句 Ccatch()语句可以放在 catch 语句组的中间 D程序中 try 语句与 catch 语句是一个整体,缺一不可 3.5 下列程序运行结果为(A ) 。 #include using namespace std; class S public: S( )cout using namespace std; int a10=1,2, 3, 4, 5, 6, 7, 8, 9, 10; int fun( int i); void main() int i ,s=0; for( i=0;i=10) throw i; return ai; 数组下标越界! S=55 4.2 #include using namespace std; void f(); class T public: T( ) cout #include using namespace std; class String public: String(const char*); String(const String String(); void ShowStr()cout #include using namespace std; class String public: String(const char*); String(const String String(); char operator(int); void ShowStr()coutstrlen(sPtr) throw(subscript); return *(sPtr+subscript); int main() try String str1(“This is C+“); String str2(str1); cout #include #include using namespace std; class String public: String(const char*); String(const String String(); char operator(int); void ShowStr()coutstrlen(sPtr) char* out_of_index=“Out of range in index of array“; throw(out_of_index); return *(sPtr+subscript); int main() try String str1(“This is C+“); String str2(str1); cout using namespace std; enumEXCEPTION_1 = 1, EXCEPTION_2, EXCEPTION_3; class CExcep

温馨提示

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

评论

0/150

提交评论