|
|
  |
Коды завершения функции |
|
|
|
May 8 2018, 06:05
|
Знающий
   
Группа: Участник
Сообщений: 916
Регистрация: 3-10-08
Из: Москва
Пользователь №: 40 664

|
Цитата(Forger @ May 8 2018, 09:01)  Это - не критическая ошибка, не фатальная. Т.е. "рабочая" ошибка. Поэтому и работать с ней нужно иначе (зависит от проекта, точнее от его ТЗ). Товарищ, если вы внимательнее пересмотрите посты дискусии, вы увидите, что чуть выше я эти же ситуации привёл именно в качестве примера "рабочих ошибок", как ответ на вопрос Цитата ...контроллер квадрокоптера или робота, то какие там могут быть "рабочие ошибки"?
|
|
|
|
|
May 8 2018, 06:07
|

Ally
     
Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050

|
Цитата(one_eight_seven @ May 8 2018, 08:58)  А если шина не закорочена? А просто обрыв канала связи, например, радиоканала с пультом управления. И канал связи может восстановиться. Или датчик в сети теряет базу (orphaning). Это всё ошибки в работе системы. С точки зрения автомата - это рабочие ситуации, но они все начинаются с возврата ошибок. То же получение Nack - ситуация стандартная, но ошибочная, в том, смысле, что это ошибка работы системы. Блин у меня пульсометр постоянно теряет связь с часами. Если я пожалуюсь на это производителю и скажу что это ошибка там чья-то, они будут смеяться мне в лицо. Т.е. понимаете, на Верхнем уровне не нужны никому такие ошибки и с ними никто не будет разбираться.
|
|
|
|
|
May 8 2018, 06:11
|

Познающий...
     
Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125

|
QUOTE (AlexandrY @ May 8 2018, 13:39)  А с вашим понятием верха, создается ощущение как будто на верху вы только и ждете сбоев АЦП и там уже все готово к потере или искажению данных. Зато, если произойдёт сбой, то я буду знать, где искать. QUOTE (AlexandrY @ May 8 2018, 14:07)  Если я пожалуюсь на это производителю и скажу что это ошибка там чья-то, они будут смеяться мне в лицо. Ну у каждого свой подход)
--------------------
Выбор.
|
|
|
|
|
May 8 2018, 06:14
|
Знающий
   
Группа: Участник
Сообщений: 916
Регистрация: 3-10-08
Из: Москва
Пользователь №: 40 664

|
Цитата(AlexandrY @ May 8 2018, 09:07)  Блин у меня пульсометр постоянно теряет связь с часами. Если я пожалуюсь на это производителю и скажу что это ошибка там чья-то, они будут смеяться мне в лицо. Т.е. понимаете, на Верхнем уровне не нужны никому такие ошибки и с ними никто не будет разбираться.  У вас как, связь с реальностью не потеряна? 1. Вы купили некачественный товар, и вы имеете право требовать нормальной его работы. 2. Обрыв датчика нужно видеть на верхнем уровне. Потерю связи с беспилотником нужно видеть на пульте. Но обе эти вещи обработаются локально, поскольку они видны на обоих концах. 3. Возвращаясь к теме дискуссии, если беспилотник потерял связь с пультом, то функция, которая ждёт Ack (условно говоря), не должна возвращать OK, она должна вернуть либо FAIL, либо NO_ACK, либо NACK (в зависимости от того, что произошло), и это коды ошибочного завершения работы функции. Что с этим будет дальше - не дело функции, она вообще не должна "знать" что там дальше. Абстракции - это же основное, что должен знать разработчик.
Сообщение отредактировал one_eight_seven - May 8 2018, 06:15
|
|
|
|
|
May 8 2018, 06:42
|

Профессионал
    
Группа: Свой
Сообщений: 1 261
Регистрация: 14-05-09
Из: Челябинск
Пользователь №: 49 045

|
ещё по теме..... вот функция объявлена как
ErCodeF1 myFunc1();
ErCodeF1 - тип енум из 3-х кодов. Я глянул этот енум и я понимаю, что может вернуть myFunc1(). Во первых, мне не нужно писать документацию на возвращаемые значения, всё понятно по именам в енуме, в крайнем случае комент на код ошибки в енуме. Во вторых я могу сделать обработку для каждого кода ошибок. Их всего 3 (один из них будет NO_ERROR, т.е. даже 2 кода ошибки.)
Тоже самое могу сказать про ErCodeF2 myFunc2();, ErCodeF4 myFunc4();, ErCodeF3 myFunc3() и т.д. у каждой функции только необходимое кол-во кодов ошибок.
Теперь делаем общий енум ошибок ErCode (или адский, как у AlexandrY), вызываем функцию ErCode yourFunc1(); какие возможные коды она вернёт? На какие коды ошибок писать обработчик? Нужно лезть в какие-то мануалы, читать описания....
неудобно. имхо.
|
|
|
|
|
May 8 2018, 11:21
|

Универсальный солдатик
     
Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362

|
Цитата(juvf @ May 8 2018, 09:42)  ... Тоже самое могу сказать про ErCodeF2 myFunc2();, ErCodeF4 myFunc4();, ErCodeF3 myFunc3() и т.д. у каждой функции только необходимое кол-во кодов ошибок. Теперь делаем общий енум ошибок ErCode (или адский, как у AlexandrY), вызываем функцию ErCode yourFunc1(); какие возможные коды она вернёт? На какие коды ошибок писать обработчик? Нужно лезть в какие-то мануалы, читать описания....
неудобно. имхо. Не вижу разницы между первым и вторым. По мне, проще сложить все универсальные ошибки в одно перечисление, чем для каждой функции создавать свое. И в обоих случаях придется лезть как в описание ошибок, так и в функции, их порождающие.
|
|
|
|
|
May 8 2018, 11:40
|

Профессионал
    
Группа: Свой
Сообщений: 1 215
Регистрация: 22-02-05
Пользователь №: 2 831

|
Цитата(ViKo @ May 8 2018, 14:21)  Не вижу разницы между первым и вторым. По мне, проще сложить все универсальные ошибки в одно перечисление, А как тогда отделить "мух от котлет": какие ошибки функция может возвращать, а какие нет? Например, как в коде, где применяется примитивная функция, которая возвращает лишь два значения, понять, на какие возвращаемые значения реагировать, а на какие нет? Каждый раз при создании или чтении кода лезть в ее описание? Все наверняка сталкивались с книгами, перегруженными поясняющими комментариями внизу страницы. Хорошо, если они внизу страницы, а если все собраны в одну кучу в конце книги?
--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
|
|
|
|
|
May 8 2018, 11:46
|
Знающий
   
Группа: Участник
Сообщений: 916
Регистрация: 3-10-08
Из: Москва
Пользователь №: 40 664

|
Цитата Все наверняка сталкивались с книгами, перегруженными поясняющими комментариями внизу страницы. Хорошо, если они внизу страницы, а если все собраны в одну кучу в конце книги? Обратная аналогия. А если глоссарий будет не в конце книги, а в конце каждого раздела?
|
|
|
|
|
  |
4 чел. читают эту тему (гостей: 4, скрытых пользователей: 0)
Пользователей: 0
|
|
|