Cattura eccezioni insolite sul codice di produzione per le app Web

0

Diciamo che ho un'app Web e, nonostante i miei migliori sforzi di test, molte delle migliaia di persone che la utilizzano troveranno un modo per generare un'eccezione. Certo, ho un codice di gestione degli errori per le mie classi e metodi.

Ma, non potendo anticipare il contesto e gli effetti di un'eccezione creata creativamente, dovrei avvolgere l'intero "controller principale" in un blocco try-catch e fare semplicemente qualcosa come echo una pagina di errore apologetica, piuttosto che morire silenziosamente (o peggio ancora, riecheggiando la stringa di errore all'utente)? Qual è la corretta pratica di programmazione per quanto riguarda la gestione degli errori inaspettata in questo modo?

    
posta Escher 12.03.2015 - 17:41
fonte

2 risposte

3

Non c'è "etichetta", se non il "principio di minima sorpresa". La soluzione dipende dai requisiti funzionali del tuo software. Quale comportamento specifica la specifica dei requisiti che dovrebbe mostrare quando viene lanciata un'eccezione imprevista?

Se stavo progettando l'applicazione, fornirei un gestore di eccezioni di alto livello in grado di acquisire la traccia dello stack e altre informazioni rilevanti in un log, in modo da poter eseguire alcune analisi forensi e fornire una possibile soluzione. A seconda del problema, la soluzione potrebbe essere quella di intercettare quella particolare eccezione e intraprendere alcune azioni come il reindirizzamento alla pagina di accesso, piuttosto che mostrare una pagina di errore.

Stack Exchange fornisce un "qualcosa di brutto accaduto, ma già lo sappiamo, ei nostri signori dell'unicorno stanno già febbrilmente isolando il problema" pagina per l'utente, quando si verifica un errore non riconosciuto.

    
risposta data 12.03.2015 - 17:46
fonte
1

Creare la propria pagina di errore 500 di solito è meglio di qualunque sia il comportamento predefinito per la propria tecnologia. Quando la pagina di errore 500 condivide lo stesso stile con il resto del tuo sito, è chiaro all'utente che si trova ancora sul tuo sito e fornisce loro i link di navigazione in modo da avere alcune opzioni su cosa fare dopo piuttosto che premere il browser pulsante Indietro o X.

    
risposta data 12.03.2015 - 18:13
fonte

Leggi altre domande sui tag