La risposta alla tua domanda è: dipende. Quello che stai facendo in questo momento è chiamato soppressione delle eccezioni, ovvero chiamare un metodo che può lanciare e restituire false quando effettivamente accade. È una buona pratica? È difficile rispondere senza sapere esattamente cosa si desidera dal metodo in cui si sopprime l'eccezione.
Personalmente ho completamente rinunciato a sopprimere le eccezioni solo per il gusto di restituire false quando viene lanciata un'eccezione e costruisco il mio codice sapendolo, ma a volte avere un metodo che è eccezionalmente sicuro potrebbe essere una buona idea.
Ho scoperto che un metodo di lancio di tipi diversi di eccezioni è utile quando si desidera elaborare ogni tipo di eccezione in modo diverso, ad esempio un errore interno del server mentre l'altro può semplicemente indicare che un utente non è autorizzato a eseguire determinate azioni . Quindi l'API del metodo non sono solo i suoi parametri e valori di ritorno, ma anche le eccezioni che il metodo genera.
Con la soppressione degli errori e restituendo false sempre, non hai alcuna opzione per distinguere l'errore interno del metodo, perché è tutto nascosto dietro un valore di ritorno, falso. Ciò non significa necessariamente che non sia un progetto valido.
Tutto sommato, se tutto ciò che vuoi è sapere se un'operazione è andata a buon fine o meno, sopprimere un'eccezione e restituire un flag bool potrebbe essere una buona idea, se vuoi che il sistema reagisca diversamente a diverse eccezioni, stai molto meglio con il lancio del metodo, stai consumando le eccezioni e gli eventi di dispacciamento come reazione a loro.