jjzjj

CException

全部标签

c++ - VC6转VS2008时try catch报错

当我在VS2008中打开一个VC6项目并尝试构建它时,最初出现错误:fatalerrorC1083:Cannotopenincludefile:'iostream.h':NosuchfileordirectoryerrorC2259:'CException':cannotinstantiateabstractclasserrorBK1506:cannotopenfile'.\Debug\SClientDlg.sbr':NosuchfileordirectoryBSCMAKESClient现在我已经将#include"iostream.h"更改为#include"iostream"并且现

c++ - 为什么我的异常在某些配置上被捕获而在其他配置上却没有?

我有一个程序抛出异常,该异常按预期在某些配置(SuseLinux,g++版本4.4.1)上捕获,但显然没有在另一个配置上捕获,这里:SunOS5.10,g++版本3.3.2。以下是我的异常类的实现:CException.hpp:#ifndef_CEXCEPTION_HPP#define_CEXCEPTION_HPP#include#include#include#include#includeclassCException:publicstd::exception{public:CException();CException(conststd::string&error_msg);CE

c++ - catch(...) 与 catch(CException *) 之间有什么区别?

CException是VC++抛出的所有异常的基类型,所以它应该捕获所有的异常吧? 最佳答案 CException不是所有扩展的基类型(它可能是MFC代码使用的所有异常的基类型,但仅此而已)。在C++中,你可以抛出任何东西;它不必是“异常”子类,甚至不必是对象。例如写throw42;是完全合法的或thrownewstd::vector();区别很明显:catch(CException)将只捕获抛出的CException实例及其子类,而另一个会捕获任何东西。 关于c++-catch(...