相关疑难解决方法(0)

在C++中从错误条件退出构造函数的最佳技术是什么

在C++中从错误条件退出构造函数的最佳技术是什么?特别是,打开文件时出错.

谢谢你的回复.我正在抛出异常.这是代码(不知道它是否是最好的方法,但它很简单)

// Test to see if file is now open; die otherwise 
if ( !file.is_open() ) {
    cerr << "Failed to open file: " << m_filename << endl;
    throw ("Failed to open file");
}   
Run Code Online (Sandbox Code Playgroud)

有人认为我喜欢C++,你不必在方法声明上声明抛出的异常.

c++ constructor

20
推荐指数
3
解决办法
1万
查看次数

我应该抛出异常吗?

我是C#程序员,但现在我想进一步学习C++.
我知道C++的基础知识,但我不知道如何处理错误.

例如:我正在写一个库.我创建了一个构造函数,它请求一个整数作为参数.
如果该整数大于50,则表示错误.在C#中我会抛出ArgumentOutOfRange异常,但是我应该在C++中做什么?

c++ error-handling exception

6
推荐指数
1
解决办法
524
查看次数

在构造函数中终止对象创建

可能重复:
如何在C++中处理构造函数中的失败?

C++中是否有任何模式,所以如果出现故障,我可以在构造函数中终止对象创建?那么调用构造函数的客户端获得了有关失败的obj创建的信息?

c++

4
推荐指数
2
解决办法
4355
查看次数

构造函数参数的条件

是否可以检查构造函数的参数是否存在某些约束,如果不满足则不创建对象并返回一个值来告诉它无法创建.

例如 .

Class Device
{
   string id;
   Device(string ID)
   {
          If (ID.Length != 7)
          {
              //Do not create Object
          }
    id == ID;
   }

}
Run Code Online (Sandbox Code Playgroud)

在这里我只想要7个字符长的id字符串,而不是更少!如果它不是7个字符我不想创建对象是否可以这样做?

除了外部功能检查之外,我想不出任何解决方案,这是我想要远离的东西!

c++ c++11

2
推荐指数
1
解决办法
132
查看次数

标签 统计

c++ ×4

c++11 ×1

constructor ×1

error-handling ×1

exception ×1