void newHandler() {
cdebug << "memory allocation failure" << std::endl;
throw std::bad_alloc();
}
int main() {
std::set_new_handler(newHandler);
// ...
}
Khi newHandler được thành lập như là xử lý lỗi của chúng tôi, nó sẽ được gọi là khi bất kỳ phân bổ đống thất bại. Điều thú vị về lỗi xử lý lỗi là nó sẽ được gọi liên tục cho đến khi bộ nhớ phân bổ thành công hoặc chức năng ném lỗi.ngoại lệ đánh bắt cho cấp phát bộ nhớ
Câu hỏi của tôi ở trên văn bản là ý nghĩa của authore cho đến khi phân bổ bộ nhớ thành công hoặc chức năng phát ra lỗi. Làm thế nào có thể chức năng có thể ném một lỗi trong trường hợp này? Yêu cầu với ví dụ để hiểu.
Cảm ơn bạn đã dành thời gian và trợ giúp.
thể trùng lặp của (http://stackoverflow.com/questions/7194127/how- nên-i-write-iso-c-tiêu chuẩn-conformant-custom-new-và-xóa-khai thác) –
@Loki: Đây là một câu hỏi cụ thể hơn so với bản sao có thể bạn đã đăng. Nhưng tôi nghĩ rằng tiêu đề nên được thay đổi để: Làm thế nào để sử dụng std :: set_new_handler – Phong