JavaScript is required

The new operator throws a ___ when heap is exhausted.

A.

runtime exception

B.

syntax error

C.

logic error

Trả lời:

Đáp án đúng: A


Khi bộ nhớ heap bị cạn kiệt, toán tử `new` sẽ ném ra một ngoại lệ (exception) thuộc loại `std::bad_alloc` hoặc một lớp dẫn xuất từ nó. Đây là một loại ngoại lệ xảy ra trong quá trình chạy chương trình (runtime). Do đó, đáp án đúng là "runtime exception". * **runtime exception:** Là các ngoại lệ xảy ra trong quá trình thực thi chương trình, thường do các điều kiện không lường trước được như hết bộ nhớ, lỗi nhập/xuất, hoặc lỗi chia cho 0. * **syntax error:** Lỗi cú pháp xảy ra khi mã nguồn vi phạm các quy tắc ngữ pháp của ngôn ngữ lập trình. Các lỗi này được phát hiện trong quá trình biên dịch (compilation). Ví dụ: thiếu dấu chấm phẩy, sai chính tả từ khóa. * **logic error:** Lỗi logic xảy ra khi mã nguồn hợp lệ về mặt cú pháp và biên dịch thành công, nhưng không thực hiện đúng chức năng mong muốn. Các lỗi này khó phát hiện hơn và yêu cầu kiểm tra, gỡ lỗi cẩn thận.

Câu hỏi liên quan