0
다음 예제를 가정 해보십시오.C++, 여러 블록에서 사용자 정의 예외를 catch하십시오.
#include <exception>
#include <string>
#include <iostream>
class A : public std::exception {
std::string a_text;
public:
A(const std::string & a_text_) : a_text(a_text_) {}
virtual ~A() throw() { }
};
class B : public A {
const std::string b_text;
public:
B(const std::string &a_text_, const std::string & b_text_) : A(a_text_), b_text(b_text_) {}
virtual ~B() throw() {}
};
template <typename T>
class C : public B {
T x;
public:
C(const std::string & a_text_, const std::string & b_text_, const T x_) :
B (b_text_, a_text_), x(x_) { }
virtual ~C() throw() {};
};
지금까지 내가 패턴을 일반화하는 것은 여러 블록에서 파생 클래스의 예외를 catch 확신되었습니다 표준 : : 예외에서 파생 된 클래스 A-C가있다. 불행하게도, B를 참조하는 제 2 블록은 스킵된다. 문제가 어디에 있습니까? 당신의 도움을 주셔서 감사합니다.
@ SoronelHaetir : 존재하는 경우 외부 캐치 블록에서 계속됩니다. – justik