如何在以下C代码中引发异常
发布时间:2020-12-16 09:59:00 所属栏目:百科 来源:网络整理
导读:我的类SystemManager()有一个名为myObject的私有对象,其构造函数需要另一个类的实例. 如果新的失败,我如何抛出异常? The.cpp: SystemManager::SystemManager(): myObject(new TCPServer()) { ...} .h: class SystemManager{ ... MyObject myObject;} 解决
我的类SystemManager()有一个名为myObject的私有对象,其构造函数需要另一个类的实例.
如果新的失败,我如何抛出异常? The.cpp: SystemManager::SystemManager(): myObject(new TCPServer()) { ... } .h: class SystemManager{ ... MyObject myObject; } 解决方法
在这种情况下,new已经抛出异常,但想象一下其他情况,你不使用new运算符,例如:
MyClass::MyClass( int var1,int var2 ) : m_var1( var1 ),m_obj2( var1 ) // If this one throws an exception,// it can't be caught. { try { // Constructor body. } catch( ... ) { } } 因此,要从初始化列表中捕获异常,您必须使用特殊类型的try-catch MyClass::MyClass( int var1,int var2 ) try : m_var1( var1 ),m_obj2( var1 ) // Now I can catch the exception. { // Constructor body. } catch( ... ) { } 资料来源:https://weseetips.wordpress.com/tag/exception-from-constructor-initializer-list/ (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |