Probabilmente è correlato a "Chi dovrebbe leggere Eccezione. Messaggio se non " e domande simili poste su questo sito, ma non vedo come sia possibile generare sempre un messaggio personalizzato evitando i messaggi di eccezione.
Anche in .NET tutti i messaggi di eccezione sono localizzati per impostazione predefinita. Ha senso o è solo un cattivo design? Inoltre è menzionato in linee guida su come gestire le eccezioni:
Include a localized description string in every exception. When the user sees an error message, it is derived from the description string of the exception that was thrown, rather than from the exception class.
Nella maggior parte dei casi è piuttosto facile catturare e mostrare un messaggio di eccezione all'utente invece di provare ad analizzare il tipo di eccezione e quindi generare un messaggio utente appropriato in base ai dettagli delle eccezioni. Soprattutto quando il risultato risulta non essere molto diverso dal messaggio di eccezione originale. Potrebbe anche essere un lavoro noioso analizzare tutti i possibili casi, fare un esempio ipotetico: è necessario connettersi ad alcuni server su HTTP e leggere alcuni messaggi XML. Ci sono un sacco di cose che potrebbero andare storte, partendo da porta / host irraggiungibile, o non avendo diritti di accesso o XML malformato ecc. Passare ogni caso è molto lavoro, mentre la semplice visualizzazione del messaggio di eccezione è semplice ed è molto probabilmente contiene una stringa user-friendly.
Quindi dovrei localizzare i messaggi di eccezione e visualizzarli all'utente finale così com'è, specialmente quando la generazione di un messaggio personalizzato potrebbe richiedere un lavoro più inutile? O dovrei ancora fare questo lavoro?