Oto ciekawa. Mam klasy A. Posiada element klasy B, którego chcę, aby zainicjować w konstruktorze A, stosując listę initializer, tak:Łapanie wyjątków z listy inicjalizacyjnej konstruktora
class A {
public:
A(const B& b): mB(b) { };
private:
B mB;
};
Czy istnieje sposób, aby złapać wyjątki, które mogą zostać wyrzucone według konstruktora kopiowego mB przy użyciu metody listy inicjalizacyjnej? Czy musiałbym zainicjować mB w nawiasach konstruktora, aby uzyskać próbę/catch?
Ah ... to wygląda jak coś! –
Ugh. Nie jestem zaskoczony, że jest jakiś sposób, aby to zrobić, ale z pewnością jest to świetny przykład, dlaczego nienawidzę składni inicjalizatora C++ ... –
UWAGA: nie można obsłużyć wyjątku podczas używania bloków try function na konstruktorach. nawet jeśli blok catch (...) nie jest ponownie rzutowany, wyjątek nadal ucieka do osoby dzwoniącej. – Aaron