c++ catch应输入一个语句
墨初 知识笔记 63阅读
c++ throw 和 try catch 语句有什么区别?

答:C++ 通过 throw 语句和 try...catch 语句实现对异常的处理。 throw 语句的语法如下: 该语句拋出一个异常。 异常是一个表达式,其值的类型可以是基本类型,也可以是类。 ... catch 可以有多个,但至少要有一个。
try...catch 语句的执行过程是什么?

答:try...catch 语句的执行过程是:. 执行 try 块中的语句,如果执行的过程中没有异常拋出,那么执行完后就执行最后一个 catch 块后面的语句,所有 catch 块中的语句都不会被执行;. 如果 try 块执行的过程中拋出了异常,那么拋出异常后立即跳转到第一个“异常类型”和拋出的异常类型匹配的 catch 块中执行(称作异常被该 catch 块“捕获”),执行完后再跳转到最后一个 catch 块后面继续执行。. 例如下面的程序:.
catch子句和异常处理有什么区别?

答:Catch子句将获得一个指向已经不存在的对象的指针。 这种行为在设计时应该予以避免。 另外一个重要的差异是在函数调用者或抛出异常者与被调用者或异常捕获者之间的类型匹配的过程不同。 在函数传递参数时,如果参数不匹配,那么编译器会尝试一个类型转换,如果存在的话。 而对于异常处理的话,则完全不是这样。 见一下的例子: 抛出的是CString,如果用const char*来捕获的话,是捕获不到这个异常的。 尽管如此,在catch子句中进行异常匹配时可以进行两种类型转换。 第一种是基类与派生类的转换,一个 用来捕获基类的catch子句也可以处理派生类类型的异常。 反过来,用来捕获派生类的无法捕获基类的异常 。 catch (const void*) ... //可以捕获所有指针异常
