Non credo che un programma dovrebbe ignorare silenziosamente o causare il caos ogni volta che si verifica un problema.
Cosa faccio con il software interno che scrivo per la mia azienda ...
Dipende dall'errore, diciamo se è una funzione critica che sta inserendo dati in MySQL, deve far sapere all'utente che non è riuscito. Il gestore degli errori dovrebbe tentare di raccogliere quante più informazioni e fornire all'utente un'idea di come correggere l'errore da soli in modo che possano salvare i dati. Mi piace anche fornire un modo per inviarci silenziosamente le informazioni che cercavano di salvare, quindi se il peggio peggiora possiamo inserirle manualmente dopo che il bug è stato corretto.
Se non è una funzione critica, qualcosa che può sbagliare e non influire sul risultato finale di ciò che stanno cercando di ottenere, potrei non mostrare loro un messaggio di errore, ma posso inviargli un'e-mail che lo inserisca automaticamente nel nostro software di tracciamento dei bug o un gruppo di distribuzione e-mail che avvisa tutti i programmatori dell'azienda in modo che siamo a conoscenza dell'errore, anche se l'utente non lo è. Questo ci consente di riparare il back-end mentre sul front-end nessuno sa cosa sta succedendo.
Una delle cose più grandi che cerco di evitare è il crash del programma dopo l'errore, non riuscire a recuperare. Cerco sempre di dare all'utente la possibilità di continuare senza chiudere l'applicazione.
Credo che se nessuno conoscesse il bug, non verrà mai risolto. Sono anche fermamente convinto della gestione degli errori che consente all'applicazione di continuare a funzionare una volta scoperto un bug.
Se l'errore è correlato alla rete, perché non è necessario che le funzioni eseguano un semplice test di comunicazione di rete prima di eseguire la funzione per evitare l'errore? Quindi avvisa l'utente che non è disponibile una connessione, verifica la tua connessione Internet ecc. Ecc. E riprova?