Dipende
Se il tuo metodo sta facendo qualcosa che sarà visibile all'utente finale, la sicurezza diventa un problema. Non devi mai restituire eccezioni di basso livello all'utente sui sistemi distribuiti.
L'istruzione catch () dovrebbe incapsulare l'errore di basso livello e scriverlo solo su un meccanismo di registrazione (più) sicuro. Uno che è facilmente accessibile solo dal personale di supporto, non al pubblico in generale.
Quindi, crea e lancia un nuovo tipo di eccezione generico che informa l'utente abbastanza da poterlo segnalare in modo intelligente, ma non fornisce loro le chiavi per il regno.
Per tutte le altre eccezioni, generalmente è meglio catturare l'eccezione nel punto in cui può essere effettivamente gestita.
Ad esempio: se si dispone di una classe business che chiama diverse classi di dati, la business class potrebbe essere la soluzione migliore per gestire effettivamente eventuali eccezioni di dati (ovvero dare loro contesto nel grande schema delle cose). Quindi, non prendere affatto nelle classi di dati.
Il tuo chilometraggio può variare.