C++抛出异常错误
编译器提示:error C2700: 'class GPError' : cannot be thrown (use -W4 for more in)
简单描述下我的问题,还请各位大牛帮忙看看。
由于想做一个动态库,所以类的前面加了AFX_EXT_CLASS 。
我定义了一个GPError'类,用来处理异常,由于代码有点多,所以省略了一些代码,只贴部分关键部分,见谅。
然后我定义了另外一个类,其中这个成员函数用来抛出异常,部分代码已省略
这个成员函数的实现部分如下:
运行之后就报上述错误,是我的GPError 类有问题吗?
简单描述下我的问题,还请各位大牛帮忙看看。
由于想做一个动态库,所以类的前面加了AFX_EXT_CLASS 。
我定义了一个GPError'类,用来处理异常,由于代码有点多,所以省略了一些代码,只贴部分关键部分,见谅。
class AFX_EXT_CLASS GPError : public CException
{
DECLARE_SERIAL(GPError)
public:
GPError(LPCTSTR lpszClassName=NULL,
ERRORCODE nError=USER_DEFINED,
Number nReason=0,
LPCTSTR lpszMessage=NULL);
protected:
CHAR * className; ///< 错误来源类名
const ERRORCODE error; ///< 错误类型
CHAR * message; ///< 错误信息描述
CHAR * name; ///< GPError异常标识
const Number reason; ///< 错误原因
};然后我定义了另外一个类,其中这个成员函数用来抛出异常,部分代码已省略
class AFX_EXT_CLASS KeyHost_0902 : public KeyHostInterface
{
public:
void ThrowError(LPCTSTR lpszClassName, GPError::ERRORCODE nError, Number nReason, LPCTSTR lpszMessage);
这个成员函数的实现部分如下:
void KeyHost_0902::ThrowError(LPCTSTR lpszClassName,
GPError::ERRORCODE nError,
Number nReason,
LPCTSTR lpszMessage)
{
throw GPError(lpszClassName, nError, nReason, lpszMessage);
}运行之后就报上述错误,是我的GPError 类有问题吗?
...全文
相关推荐
CPP.rar_cpp异常
关于C++的异常处理资料,非常的使用,希望能提高你程序的健壮性
cpp-CException一个C实现的异常
CException - 一个C实现的异常
jni方法里面抛出异常
这是我自己写的demo,联系jni里面抛出异常
go-swig-exceptions:示例代码显示如何使用 SWIG 将抛出异常的 C++ 库移植到返回错误的库中
使用 SWIG 将 C++ 库移植到 Go 例外 此代码旨在作为如何移植抛出异常的 C++ 库的示例。 所有抛出异常的方法都包含在 try/catch 块中,这些块将异常转换为恐慌,然后恢复以返回 go 错误。 描述 DemoLib C++ 类 DemoLib C++ 类有两种方法( DivideBy和NegativeThrows ),它们在某些输入上抛出异常,还有一种方法( NeverThrows )永远不会抛出异常。 DemoLib::DemoLib () {}o double DemoLib::DivideBy ( int n) { if (n == 0 ) { throw std::invalid_argument ( " Cannot divide by zero " ); } return 1.0 / n; } int DemoLib
异常2.cpp
翁恺教授视频《C++面向对象程序设计》源码



