c++ make constructor fails if bad argument
#include <iostream>
#include <stdexcept>
class MyClass {
public:
MyClass(int value) : data(validate(value)) {}
private:
int data;
int validate(int value) {
if (value < 0) {
throw std::invalid_argument("Invalid argument: value must be non-negative");
}
return value;
}
};
int main() {
try {
MyClass myObject(-5);
} catch (const std::invalid_argument& e) {
std::cerr << "Exception caught: " << e.what() << std::endl;
}
return 0;
}