Ciao a tutti,
avrei bisogno del vostro aiuto per chiarirmi un dubbio sull'uso dell'operatore instanceof utilizzato all'interno dei blocchi catch.

metodoA() lancia metodoB().
Quest'ultimo a seconda dei parametri passati e di altri controlli potrebbe generare una eccezione (EccezioneUno, EccezioneDue, EccezioneTre...).
In metodoB() per motivi di generalizzazione posso scrivere solo throws Exception.

Il dubbio mio è:
una volta che si è verificata una eccezione, sarà il metodoA a doversi occupare della sua gestione, ma dal momento che non so realmente di che tipo di eccezione si tratta come posso scrivere i vari blocchi catch?
Dovrei usare l'operatore instanceof, ma come?

codice:
private void metodoA() {
 try {
  metodoB(/* serie di parametri */);
 }

 catch (/* Qui risiede il dubbio */) {
   // qui dovrei gestire EccezioneUno
 }

 catch (/* Qui risiede il dubbio */) {
   // qui dovrei gestire EccezioneDue
 }

 catch (/* Qui risiede il dubbio */) {
   // qui dovrei gestire EccezioneTre
 }

}

private void metodoB(/* parametri */) throws Excpetion {
 if (...) throw new EccezioneUno();
 if (...) throw new EccezioneDue(); 
 if (...) throw new EccezioneTre(); 
 .
 .
 .  
}
Spero di essermi spiegato bene.

Grazie per il vostro aiuto!