一、在成都大数据培训之中,ExceptionType是一个异常类型,它指示当前catch可以处理什么类型的异常;变量是用来接收异常信息的变量。当程序抛出异常时,它会创建一个数据,其中包含错误信息,程序员可以判断出哪里出错了,下一步如何处理。
二、因为异常是一段数据,所以应该有一个数据类型。c规定异常类型可以是int、char、float和bool等基本类型,也可以是指针、数组、字符串、结构和类等聚合类型。C语言本身抛出的异常和标准库中的函数都是异常类或其子类的异常。当抛出异常时,将创建异常类或其子类的对象。
三、ExceptionType变量与函数的C%8F%E5%8F%82%E6%95%B0" class="link">形式参数非常相似。当异常发生时,异常数据将被传递给变量,这类似于将参数传递给函数的过程。只有与exceptionType类型匹配的异常数据才会被传递给变量,否则catch将不会接收到该异常数据,也不会执行catch块中的语句,故catch不会处理当前异常。
四、我们可以把catch看作一个没有返回值的函数。当异常发生时,将调用catch并接收实际参数(异常数据)。但是catch不同于真正的函数调用:
对于实函数调用,C%8F%E5%8F%82%E6%95%B0" class="link">形式参数和实际参数的类型必须匹配,或者可以自动转换,否则在编译阶段会报错。而对于 catch,异常是在运行阶段产生的,它可以是任何类型,没法提前预测,所以不能在编译阶段判断类型是否正确,只能等到程序运行后,真的抛出异常了,再将异常类型和 catch 能处理的类型进行匹配,匹配成功的话就“调用”当前的 catch,否则就忽略当前的 catch。总来说catch 和真正的函数调用相比,多了一个「在运行阶段将实参和形参匹配」的过程。
另外需要注意的是,如果不希望 catch 处理异常数据,也可以将 variable 省略掉,也即写作:
try{
// 可能抛出异常的语句
}catch(exceptionType){
// 处理异常的语句
}
这样只会将异常类型和 catch 所能处理的类型进行匹配,不会传递异常数据了。
以上是成都大数据培训之C++异常类型exceptionType variable的详细介绍,如果您想了解更多细节,请点击成都卡米谷大数据官方网站!成都大数据培训学校,大数据开发培训,数据分析和挖掘,零基课程火热正在招生中!http://www.dtinone.net/sjfx/