[C++] blocco try - catch

Salve ragazzi, volevo chiedere un consiglio:

devo gestire una situazione di errore di questo tipo:

try{
   .......
}
catch(const char *e){
 .....
}
catch(const char *e){
 .....
}
etc. etc.

e desidererei avere una situazione di questo tipo:

try{
   .......
}
catch(MIA_ECCEZIONE1 e){
 .....
}
catch(MIA_ECCEZIONE2 e){
 .....
}
etc. etc.

mi consigliate di fare una classe base di nome Exception e via via derivare altre classi da questa con nomi delle mie eccezioni, oppure usare typedef o enum?

Spero di essere stato chiaro.

Grazie mille per una vostra eventuale risposta.

Prima di tutto una domanda:

  1. Il tuo programma C++ opera in modalitĂ  testuale o fĂ  uso di qualche framework, tipo Qt, GNOME?