如何处理构造函数中发生的初始化错误,构造函数中不允许返回 因为我们不能从C++或java中的构造函数返回值,如果在初始化一个新对象时出现了一些错误,那么我们怎么可能知道它并进行相应的处理呢?

如何处理构造函数中发生的初始化错误,构造函数中不允许返回 因为我们不能从C++或java中的构造函数返回值,如果在初始化一个新对象时出现了一些错误,那么我们怎么可能知道它并进行相应的处理呢?,java,c++,Java,C++,您应该抛出一个异常,并在调用构造函数时使用try-catch。要么抛出en-exception,要么让一个名为isInitialized的成员变量,并在该变量初始化时将其设置为true正确。允许java中的构造函数抛出异常 Person(int age, String name){ if(age<0) throw new IllegalArgumentException("Age of a person can not be null"); this.age

您应该抛出一个异常,并在调用构造函数时使用try-catch。

要么抛出en-exception,要么让一个名为isInitialized的成员变量,并在该变量初始化时将其设置为true正确。

允许java中的构造函数抛出异常

Person(int age, String name){
        if(age<0) throw new IllegalArgumentException("Age of a person can not be null");
        this.age = age;
        this.name = name;
    }
Person(整数年龄,字符串名称){

如果(age我们甚至可以让构造函数调用一些函数,然后检查值。
然而,在构造函数中调用函数是安全的并且总是可能的吗

我不理解你的问题,你能提供一个例子或详细说明一下吗?你能澄清一点吗?抛出一个异常。或者将可能失败的逻辑移到构造函数之外,并将结果传递到构造函数中。@Marounnaroun:每个初始化在我的构造函数中都有一个返回状态。我如何返回它在C++中,可以使用TestCcatch块+1,这是一个构造错误的惯用方式。第一个选项是好的。第二个选项不是太多。它留给你的对象可能有无效的状态,这意味着每次使用它们都必须检查。我同意JuangopANZA,加上T需要额外的内存。但有时你需要那个对象,而时间问题会导致它在构造时无法初始化。更好的答案是不要初始化,否则会在构造函数中失败。