exception hierarchy derived from std::exception