Catching derived classes : try catch « Exceptions « C++ Tutorial






#include <iostream>
using namespace std;

class B {
};

class D: public B {
};

int main()
{
  D derived;

  try {
    throw derived;
  }
  catch(B b) {
    cout << "Caught a base class.\n";
  }
  catch(D d) {
    cout << "This won't execute.\n";
  }

  return 0;
}








6.1.try catch
6.1.1.A simple exception handling example
6.1.2.Throwing an exception from a function called from within a try block
6.1.3.A try block can be localized to a function
6.1.4.Use multiple catch statements
6.1.5.Catch all exceptions
6.1.6.Multiple catch blocks
6.1.7.Catch 'const char * str' (string) exception
6.1.8.Use catch(...) as a default
6.1.9.Catching derived classes
6.1.10.try catch block without exception being thrown