Bad_typeid
Если typeid не может определить тип объекта, выбрасывается исключение bad_typeid. Это происходит, например, при попытке определить тип, на который ссылается нулевой указатель:
//////////////////////////////////////////////
// BadType.cpp: Исключение bad_typeid.
//
#include <iostream.h> #include <typeinfo.h>
#pragma hdrstop
#include <condefs.h>
class Base { public:
virtual ~Base() {} };
class Derived: public Base {};
int main() {
try {
Base *bp = NULL;
cout<< "Typeid of bp: " << typeid(*bp).name() << endl;
} catch(bad_typeid) {
cout << "Bad typeid caught!"<< endl;
} return 0;
}