E đọc các tài liệu thì trong constructor c++ khi đã throw thì xem như object không được khởi tạo thành công, do đó destructor không được gọi. Tuy nhiên trường hợp của em thế này:
//Constructor
Date::Date(int m, int d, int y){
try{
if (CheckValidDate(m,d,y)){
cout << "Date object constructor for date ";
printf("%d/%d/%d", m, d, y);
cout<< endl;
} else throw 505;
}
catch(...){};
day = d;
month = m;
year = y;
}
// Destructor
Date::~Date(){
cout << "Date object destructor for date ";
print();
cout<< endl;
}
Chương trình có 3 test case, 2 case đầu là định dạng hợp lệ, case 3 thì không. Khi chạy theo em dự tính thì case 3 sẽ không có thông báo của cả constructor và destructor; tuy nhiên, nó lại hiện thông báo của destructor? Làm thế nào để xử lí ạ :>