Я не вірю, що програма повинна мовчки ігнорувати чи спричиняти хаос кожного разу, коли вона стикається з проблемою.
Що я роблю з внутрішнім програмним забезпеченням, пишу для своєї компанії ...
Це залежить від помилки, скажімо, якщо це критична функція, яка вводить дані в MySQL, вона повинна повідомити користувачеві про те, що вона не вдалася. Обробник помилок повинен спробувати зібрати якомога більше інформації та надати користувачеві уявлення про те, як виправити помилку, щоб вони могли зберегти дані. Мені також подобається мовчки надіслати нам інформацію, яку вони намагаються зберегти, якщо гірше погіршиться, ми можемо ввести її вручну після виправлення помилки.
Якщо це не критична функція, те, що може помилитися і не вплинути на кінцевий результат того, що вони намагаються досягти, я не можу показувати їм повідомлення про помилку, але я надішлю електронний лист, який автоматично вставить його в наше програмне забезпечення для відстеження помилок або група розповсюдження електронної пошти, яка попереджає всіх програмістів у компанії, щоб ми знали про помилку, навіть якщо користувач цього не робив. Це дозволяє нам фіксувати задній кінець, тоді як на передньому кінці ніхто не знає, що відбувається.
Однією з найбільших речей, якої я намагаюся уникати, є збій програми після помилки - неможливість відновлення. Я завжди намагаюся надати користувачеві можливість продовжувати, не закриваючи додаток.
Я вірю, якщо про помилку ніхто не знає - вона ніколи не буде виправлена. Я також твердо вірю у поводження з помилками, що дозволяє програмі продовжувати функціонувати після виявлення помилки.
Якщо помилка пов'язана з мережею - чому б не запропонувати функції виконати простий тест мережевого зв’язку перед виконанням функції, щоб уникнути помилки в першу чергу? Тоді просто попередивши користувача, що з'єднання недоступне, перевірте свій Інтернет і т. Д. І спробуйте ще раз?