> 教育经验 > 什么是catch介绍

什么是catch介绍

什么是catch介绍

如果在try语句块的程序段中(包括在其中调用的函数)发现了异常,且抛弃了该异常,则这个异常就可以被try语句块后的某个catch语句所捕获并处理,捕获和处理的条件是被抛弃的异常的类型与catch语句的异常类型相匹配。

catch作用

catch(…)能够捕获多种数据类型的异常对象,所以它提供给程序员一种对异常对象更好的控制手段,使开发的软件系统有很好的可靠性。因此一个比较有经验的程序员通常会这样组织编写它的代码模块。

try{//程序中抛出异常 throw value;}catch(valuetype v){//例外处理程序段}

语法小结:throw抛出值,catch接受,当然,throw必须在“try语句块”中才有效。

catch解释

一、程序接受到throw语句后就会自动调用析构器,把该域(try后的括号内)对象clean up,然后再进

入catch语句(如果在循环体中就退出循环)。

这种机制会引起一些致命的错误,比如,当“类”有指针成员变量时(又是指针!),在 “类的构建器

”中的throw语句引起的退出,会导致这个指针所指向的对象没有被析构。这里很基础,就不深入了,提

示一下,把指针改为类就行了,比如模板类来代替指针,在模板类的内部设置一个析构函数。

二、语句“throw;”抛出一个无法被捕获的异常,即使是catch(...)也不能捕捉到,这时进入终止函数

catch出现形式

一般的catch出现的形式是:

try{}

catch(except1&){}

catch(except2&){}

catch(...){} //接受所有异常

一般都写成引用(except1&),原因很简单,效率。