次の方法で共有


コンパイラの警告 (レベル 4) C4673

'identifier' のスロー。次の型はキャッチ側では評価されません

throw オブジェクトは catch ブロックで処理できません。 処理できない各型は、エラー出力の、この警告を含む行の直後に一覧表示されます。 処理されなかった各型には、独自の警告が表示されます。 詳細については、特定の型のそれぞれの警告を参照してください。

次のサンプルでは C4673 が生成されます。

// C4673.cpp
// compile with: /EHsc /W4
class Base {
private:
   char * m_chr;
public:
   Base() {
      m_chr = 0;
   }

   ~Base() {
      if(m_chr)
         delete m_chr;
   }
};

class Derv : private Base {
public:
   Derv() {}
   ~Derv() {}
};

int main() {
   try {
      Derv D1;
      // delete previous line, uncomment the next line to resolve
      // Base D1;
      throw D1;   // C4673
   }

   catch(...) {}
}