JavaScript is required

Where is an exception generated?

A.
In the catch block
B.
In the throw clause
C.
In the constructor of a class
D.
Only when memory allocation fails
Trả lời:

Đáp án đúng: B


Câu hỏi này kiểm tra kiến thức về cơ chế xử lý ngoại lệ trong lập trình, đặc biệt là nơi ngoại lệ được tạo ra (generated). * **Phương án A: In the catch block** - Sai. Khối `catch` được sử dụng để *xử lý* ngoại lệ đã được ném ra, chứ không phải là nơi ngoại lệ được tạo ra. * **Phương án B: In the throw clause** - Đúng. Ngoại lệ được tạo ra (generated) chính xác tại vị trí câu lệnh `throw` được thực thi. Câu lệnh `throw` tạo ra một đối tượng ngoại lệ và "ném" nó đi, để các khối `catch` thích hợp có thể bắt và xử lý. * **Phương án C: In the constructor of a class** - Sai. Mặc dù một constructor *có thể* ném ra một ngoại lệ nếu có lỗi xảy ra trong quá trình khởi tạo đối tượng, nhưng không phải *tất cả* ngoại lệ đều được tạo ra trong constructor. Constructor chỉ là một trong nhiều nơi ngoại lệ có thể phát sinh. * **Phương án D: Only when memory allocation fails** - Sai. Ngoại lệ có thể xảy ra do nhiều nguyên nhân khác nhau, không chỉ giới hạn ở việc cấp phát bộ nhớ thất bại. Ví dụ: truy cập vào một phần tử không hợp lệ của mảng, chia cho 0, mở một tập tin không tồn tại, v.v. Vậy, đáp án đúng là B, vì ngoại lệ được tạo ra (generated) tại câu lệnh `throw`.

Câu hỏi liên quan