Існують винятки, щоб дозволити обробку винятків , яка може уникнути збоїв, але загалом запобігає небажаній чи непередбачуваній поведінці системи. Наприклад, якщо час підключення моєї програми до бази даних закінчується, це зазвичай не збирається збою системи, але якщо я залежав від даних із бази даних, виняток може дозволити мені трактувати цю ситуацію, що не має даних, інакше, ніж зазвичай.
Скажімо, за замовчуванням моя програма відображає сторінку даних на основі того, що було повернуто з бази даних - добре лайно, у мене немає даних. Замість того, щоб представити переплутане подання або продовжувати потенційно недійсну операцію, я можу наздогнати цей виняток і повернутися до іншої бази даних, прочитати з локальних даних, запитати у користувача дані або іншим чином повернути користувача або систему в безпечний стан (імовірно, один це не відразу спричинить той самий виняток!)
Крім того, у системах, де введення користувача може бути причиною / рішенням проблеми, винятки можуть повідомити користувачу про детальну та корисну інформацію про проблему. Замість занадто поширеного "Неопрацьоване виняток сталося в ..." або "Залякування повідомлення про помилку прямо з SQL", ви можете сказати користувачеві щось корисне або принаймні зрозуміле, наприклад "Не вдалося підключитися до ресурсу B."