thể trùng lặp:
Will exit() or an exception prevent an end-of-scope destructor from being called?Các trình phá hủy có chạy khi gọi exit() không?
Trong C++, khi ứng dụng gọi exit (3) là các hàm hủy trên stack nghĩa vụ phải được chạy để thư giãn stack?
Và, có cách tiếp cận khác không? 'throw' một kiểu đặc biệt thay vì gọi' exit', bắt nó trong 'main', và sau đó' return' từ 'main' thay vì' exit' từ 'main'? –
@AaronMcDaid Tôi không hiểu câu hỏi của bạn. Cách tiếp cận thay thế cho cái gì? Những gì bạn sẽ cố gắng thực hiện bằng cách tránh một cuộc gọi đến 'exit()'? Trong một trong các ứng dụng của tôi, tôi ném một đối tượng 'customExit' và bắt nó trong chính và sử dụng một giá trị nguyên từ đối tượng' customExit' để cung cấp giá trị trả về từ chính, theo cách này, các RAII destructors của tôi được chạy để dọn dẹp những thứ như Hồ sơ tạm thời. – WilliamKF
bình luận của bạn đã trả lời chính xác câu hỏi của tôi (viết sai). Cảm ơn! Về cơ bản, tôi muốn xác nhận rằng người khác sử dụng phương pháp 'ném' này để đảm bảo mọi thứ bị phá hủy trong một lối thoát chương trình bình thường –