CATCH

CATCH( exception_class, exception_object_pointer_name )

参数:
exception_class指定了要检测的异常类型。有关标准异常类的列表参见CException类。
exception_object_pointer_name指定了这个宏将创建的异常对象指针的名字。你可以在CATCH块内使用这个指针名来访问异常对象。这个变量是为你定义的。

说明:
使用这个宏来定义一个代码块,它将捕捉前面的TRY块抛出的第一个异常类型。异常处理代码能够检验异常对象以获得有关异常原因的详细信息。调用THROW_LAST宏可以将处理权移交给下一个异常框架。用END_CATCH来结束一个TRY块。
如果exception_class是CException类,那么所有的异常类型都会被捕捉。你可以使用CObject::IsKindOf成员函数来决定抛出什么类型的异常。捕捉几个类型的异常的更好的方式是使用一系列的AND_CATCH语句,每个针对一个不同的异常类型。
异常对象指针是由宏生成的。你不必自己声明它。
注意:
CATCH块被定义为一个C++作用域(用大括号分界)。如果你在这个作用域内声明了变量,记住它只能在作用域内部访问。这也适用于exception_object_pointer_name。关于异常和CATCH宏的更多信息参见《Visual C++程序员指南》中的文章:“异常”。

请参阅:
TRY, AND_CATCH, END_CATCH, THROW, THROW_LAST, CATCH_ALL, CException