L'obiettivo appropriato non è quello di rendere l'applicazione "senza incidenti" ma di rendere l'applicazione affidabile e stabile.
Potrebbe essere possibile ridurre o addirittura eliminare virtualmente gli arresti anomali con la gestione delle eccezioni. Tuttavia, a parità di altre condizioni, questo sostituirà semplicemente i crash con i casi in cui il programma entra in uno stato inutilizzabile.
Questo non ha un aspetto migliore per i tuoi utenti. In effetti, molto probabilmente sarà peggio. Almeno un incidente è un fallimento chiaro e pulito. Un programma in uno stato non funzionante è al massimo ambiguo. L'utente può perdere molto tempo per vedere se l'applicazione è bloccata o semplicemente "pensando". Nel peggiore dei casi può effettivamente causare danni, continuando a compiere azioni, ma in modo corrotto.
Non esiste una scorciatoia per scrivere un codice buono e affidabile.