Đây là một điều thú vị. Tôi có một lớp A. Nó có một mục của lớp B, mà tôi muốn khởi tạo trong constructor của A sử dụng một danh sách initializer, như vậy:Ghi ngoại lệ từ danh sách khởi tạo của hàm tạo
class A {
public:
A(const B& b): mB(b) { };
private:
B mB;
};
Có cách nào để bắt ngoại lệ có thể được ném bởi nhà xây dựng bản sao của mB trong khi vẫn sử dụng phương pháp danh sách khởi tạo? Hoặc tôi sẽ phải khởi tạo mB trong các dấu ngoặc của hàm tạo để có một try/catch?
Ah ... có vẻ như chỉ là điều! –
Ugh. Tôi không ngạc nhiên rằng có một số cách để làm điều đó, nhưng nó chắc chắn là một ví dụ tuyệt vời về lý do tại sao tôi ghét cú pháp khởi tạo C++ ... –
LƯU Ý: bạn không thể xử lý ngoại lệ khi sử dụng chức năng thử khối trên các nhà xây dựng. ngay cả khi khối catch (...) của bạn không ném lại, ngoại lệ vẫn thoát cho người gọi. – Aaron