Изменения документа Об обработке ошибок

Редактировал(а) Alexandr Fokin 2024/02/11 14:43

<
От версии < 11.2 >
отредактировано Alexandr Fokin
на 2023/02/03 13:21
К версии < 11.1 >
отредактировано Alexandr Fokin
на 2021/10/16 12:26
>
Изменить комментарий: К данной версии нет комментариев

Комментарий

Подробности

Свойства страницы
Содержимое
... ... @@ -1,30 +1,16 @@
1 -|1|(% style="width:256px" %)Введение типов ошибок.|(% style="width:1208px" %)(((
2 -Наличие регламента типов ошибок.
3 -Как минимум обычно можно выделить - технические ошибки и ошибки валидации входных данных (а также ошибки валидации недопустимых действий).
1 +
2 +1) Мы можем выделить несколько типов ошибок в модели приложения.
3 +Как миниму обычно можно выделить - технические ошибки и ошибки валидации входных данных (а также ошибки валидации недопустимых действий).
4 4  В целом модель типов ошибок может быть более сложной.
5 5  
6 -Это также позволит реализовать различную логику в зависимости от типа ошибки.
6 +2) При разработке приложение желательно определить политики того, как и какие ошибки мы будем передавать и перехватывать.
7 7  
8 -Дополнительно: спорный вопрос использования механизма [[Exception>>doc:Разработка.NET.C#.Исключения | Exception .WebHome]] для передачи ошибок валидации входных данных.
9 -)))
10 -|2|(% style="width:256px" %)Политика обработки ошибок.|(% style="width:1208px" %)При разработке приложение желательно определить политики того, как и какие ошибки мы будем передавать и перехватывать.
11 -На каком (их) уровне будет вестись обработка и принятие решений о поведении в случае ошибки.
12 -|3|(% style="width:256px" %)Реагирование на ошибки в рамках жизненного цикла запроса / работы.|(% style="width:1208px" %)Также важно понимать как ошибки влияю на жизненный цикл обработки запроса в нашем приложении. Какие ошибки являются критичными, а какие говорят о необходимости выполнить альтернативное или повторное действие.
13 -|4|(% style="width:256px" %)Логирование ошибок|(% style="width:1208px" %)(((
14 -Не должно быть ситуации, когда данные о технических ошибках просто теряются, не попав в лог.
15 -За исключением того, если определен перечень допустимых ошибок (наличие обоснования).
8 +3) Также важно понисать как ошибки влияю на жизненный цикл обработки запроса в нашем приложении. Какие ошибки являются критичными, а какие говорят о необходимости выполнить альтернативное действие.
16 16  
17 -Дополнительный вопрос: Достаточно ли хранимой и логируемой информации для понимания причины ошибки, воспроизведения ее на тестовом окружении?
18 -)))
19 -|5|(% style="width:256px" %)Примеры и вопросы|(% style="width:1208px" %)(((
20 -|(% style="width:332px" %)У нас есть Web Api, обрабатывающее входные запросы.|(% style="width:857px" %)(((
21 -Учтены ли в контракте API ситуации, когда запрос завершается ошибкой (причем также могут допускаться разные типы), отражено ли это в формате ответа.
10 +4) Логирование - не должно быть ситуации, когда технические ошибки могут просто пропасть, не попав в логи.
11 +Или же у нас есть перечень допустимых ошибок, а все остальное пишется в логи.
12 +Достаточно ли хранимой и логируемой информации для понимания причины ошибки, воспроизведения ее на тестовом окружении?
22 22  
23 -Исходя из требований и ситуации: Насколько информативным должен быть текст ответа API в случае ошибки валидации входных данных. Проверяются ли входные данные целиком или же обработка прекращается при нахождении первого недопустимого элемента?
24 -)))
25 -|(% style="width:332px" %)У нас есть входная очередь и воркер, выполняющий чтение и обработку.|(% style="width:857px" %)(((
26 -Существуют ли какие либо ошибки, возникновение которых должно приводить к тому, что мы перестаем извлекать новые сообщения, останавливая обработку (например до наступления какого-то события), или же воркер в любом случае должен переходить к обработке следующего сообщения? Сохранение информации о проблемном сообщении.
14 +5) Например: У нас есть WebApi, обрабатывающее входные запросы. Насколько информативным должен быть текст ответа API в случае ошибки валидации входных данных. Проверяются ли входные данные целиком или же обработка прекращается при нахождении первого недопустимого элемента?
27 27  
28 -В некоторых случаях может возникнуть вопрос необходимости периодической проверки доступности других сервисов или даже БД. И в случае недоступности менять поведение или останавливать обработку совсем.
29 -)))
30 -)))
16 +6) Например: У нас есть входная очередь и воркер, выполнябщий чтение и процесинг. Существуют ли какие либо ошибки, возникновение которых должно приводить к тому, что мы перестаем извлекать новые сообщения, останавливая обработку (например до наступления какого-то события), или же воркер в любом случае должен переходить к обработке следующего сообщения?