La variabile ErrorString guarda con sospetto, come una variabile di codice di errore. Si consiglia di utilizzare le eccezioni per trasferire direttamente le informazioni sugli errori, laddove necessario, anziché archiviare gli elementi nei codici di errore.
Si sta effettivamente facendo la stessa cosa con ErrorString di come si farebbe se si lasciasse catturare l'eccezione dal chiamante: rimuovere la responsabilità di rispondere a un errore dal metodo stesso. Questo è un buon obiettivo. Ma l'uso di una stringa di errore non ti porta nulla sull'uso di un'eccezione. In realtà, perdi informazioni in questo modo. Esistono numerosi tipi di errori che potrebbero verificarsi e molti di essi hanno eccezioni speciali associate, con le loro proprietà speciali per contenere informazioni contestuali sull'errore. Archiviando semplicemente il messaggio in una stringa, stai perdendo questa informazione.
Quindi, a meno che l'obiettivo non sia specificamente quello di nascondere il tipo di errore che si sta verificando dal chiamante, è possibile ottenere solo facendo passare l'eccezione.
Un'altra cosa da considerare è se questo è veramente uno scenario di errore. Se lo è, è molto improbabile che il metodo di chiamata si preoccupi del valore restituito. In tal caso, non devi preoccuparti di lasciare andare l'eccezione e non restituire nulla. Se NON è davvero uno scenario di errore, e il chiamante sta per continuare e fare qualcos'altro, beh, è compito del chiamante decidere, giusto? Non c'è ancora molto vantaggio da ottenere restituendo una stringa di errore e un DataTable fittizio o un valore null, oltre a generare l'eccezione con tutte le informazioni di errore contestuali.
fonte
2009-03-02 15:36:11
"Così quando ho metodi con valori di ritorno non uso blocco try-catch, che è una cattiva pratica." dice chi? La maggior parte dei metodi restituisce valori senza essere racchiusi nei blocchi di prova. –
Picchiato di 20 secondi! Anzi, appoggia quello che stavo per dire; se c'è un'eccezione - A MENO CHE tu te lo aspetti e possa fare qualcosa di utile su di esso, lascia che bolla al chiamante. –
Ingerire le eccezioni è il vero problema qui. –