Re[2]: Про обработку ошибок - типовые решения
От: Shmj Ниоткуда  
Дата: 21.04.25 20:35
Оценка: :)
Здравствуйте, Pzz, Вы писали:

Pzz>Завтра мода на GUI поменяется, и список твой будет звучать по-другому.


Нет, это не зависит от GUI никаким образом. Более того — часть пунктов не применима к GUI — а только к фоновым сервисам.

Pzz>В конечном итоге, сообщение об ошибке, как бы оно не выглядело, должно нести следующую информацию:

Pzz>1. Чего, собственно, хотят от пользователя? Попробовать еще раз? Исправить ошибки ввода? Подёргать провод? Перезагрузиться? Позвать старщего? Позвонить в техподдержку? Отнести компутер в ремонт?

Очень важен вариант обработки ошибки вот какой, копирую:

Если изменился пользователь а некая операция продолжила выполняться и завершилась после смены пользователя — то это не ошибка, это штатное поведение. Но при этом нельзя применять результаты данной операции — нужно сгенерить исключение. Но! Пользователю и даже в лог вносить это исключение смысла нет, т.к. ситуация штатная и доп. решения не треубет.


Т.е. важно уметь оборвать операцию в процессе, но при этом не тревожить пользователя лишними оповещениями, т.к. это штатная ситуация.

Pzz>2. Что случилось с его запросом? Он вообще не исполнен? Он исполнен наполовину? Деньги ушли, но пылесос не приедет?


Тут не только что случилось. Допустим нет интернета. И что? Программа пытается сделать некую фоновую задачу — не получилось. Сообщать пользователю? Ведь он может проверить WiFi-роутер свой или оплатить задолженность по интернету провайдеру. Не сообщим — плохо. Но при этом дублировать сообщение о том что интернета нет каждые 3 секунды, доставать пользователя — так же плохо.

Читайте внимательно пункты — там не от балды а опыт 20 лет разработки.

Pzz>3. Если есть негативные последствия, как их исправить?


Если мы знаем как исправить — то можно исправить и без того, чтобы беспокоить пользователя.

Пробуйте практические примеры подобрать.

Pzz>4. Насколько всё это серьезно? Само рассосётся?


Нет сети, сервер не доступен — это, возможно, рассосется. Поврежден файл данных — уже усё. Не так много вариантов.

Pzz>Ну, и кроме того, должна сохраняться подробная информация для профессионального разбора полётов.


А вот это уже можно не отображать пользователю а отправлять разработчику в удаленный лог.
=сначала спроси у GPT=
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.