Ciao, vorrei capire una volta per tutte l'uso del throw

Se io ho una serie di metodi richiamati a cascata:

metodo A chiama metodo B che chiama metodo C

come intercetto, nel metodo A, gli errori del metodo C??


Metodo A:
try
...
Esegui B
...
catch(Exception ex)
ex è l'errore avvenuto in A, B o C


Metodo B
try

Esegui C

catch(Exception ex)


Metodo C
try
Accedi al DB
catch(Exception ex)


Grazie per l'aiuto