реклама на сайте
подробности

 
 
> Ошибки функций... и последствия, C builder 2006
toweroff
сообщение Dec 21 2011, 17:32
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514



Даже не знаю, как обозвать тему sm.gif

Все что угодно соединяется. Выдается ID
вызываем функцию, которая в канал связи или пытается передать, или пытается получить оттуда
но что-то не получилось
Функция вернет ошибку (или количество байт не то, которое ждали)

Таких вызовов много

Как правильно сделать одну секцию ошибок, которая сделает (в зависимости от ошибки) одно действие, или несколько секций кода для разных ошибок?

Как это правильно делается, дабы каждый раз не плодить условий при вызове функций обмена?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
toweroff
сообщение Dec 23 2011, 14:16
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514



Поясню

Есть функция (точнее - несколько), в которых осуществляется передача данных путем вызова функций libusb
Каждый раз приходится их вызывать и контролировать количество принятых/переданных данных к заявленным к приему/передаче
Дабы сохранить читаемость, получается if, после которого есть goto на лабель, где сообщается ошибка и вываливаемся из функции
Такой подход (проверка каждого вызова функций приема/передачи и переход в одно и то же место) - нормально, или есть более красивые механизмы?
Пока вот смотрю в сторону исключений
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Dec 25 2011, 05:33
Сообщение #3


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Цитата(toweroff @ Dec 23 2011, 18:16) *
Такой подход (проверка каждого вызова функций приема/передачи и переход в одно и то же место) - нормально, или есть более красивые механизмы?
Пока вот смотрю в сторону исключений

Видимо, ссыль из моего пред. поста Вас не зацепил. Зря, чесслово! На машине Даффа строится отличная альтернатива исключениям, мсм.
Go to the top of the page
 
+Quote Post
toweroff
сообщение Dec 25 2011, 08:53
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514



Цитата(_Pasha @ Dec 25 2011, 09:33) *
Видимо, ссыль из моего пред. поста Вас не зацепил. Зря, чесслово! На машине Даффа строится отличная альтернатива исключениям, мсм.

честно говоря, не вкурил. Сейчас ищу другие статьи, кроме вики, чтобы осознать это дело sm.gif
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- toweroff   Ошибки функций... и последствия   Dec 21 2011, 17:32
- - toweroff   Я к чему Обойтись можно средствами C или только C+...   Dec 21 2011, 19:18
|- - Tiro   Цитата(toweroff @ Dec 21 2011, 22:18) Обо...   Dec 21 2011, 20:29
|- - toweroff   Цитата(Tiro @ Dec 22 2011, 00:29) Все рав...   Dec 21 2011, 20:42
|- - Tiro   Цитата(toweroff @ Dec 21 2011, 23:42) объ...   Dec 21 2011, 20:57
|- - toweroff   Цитата(Tiro @ Dec 22 2011, 00:57) Обработ...   Dec 21 2011, 21:16
|- - Tiro   Цитата(toweroff @ Dec 22 2011, 00:16) да ...   Dec 21 2011, 21:42
- - aaarrr   Да, обработка ошибок на каком-то этапе неизбежно у...   Dec 21 2011, 21:28
- - XVR   Вам нужно, что бы было одно место, через которое в...   Dec 22 2011, 10:33
- - kolobok0   Цитата(toweroff @ Dec 21 2011, 21:32) ......   Dec 23 2011, 08:21
- - _Pasha   Цитата(toweroff @ Dec 21 2011, 20:32) Даж...   Dec 23 2011, 12:32
- - Flexz   Да нормально вполне, если не ошибаюсь, например, в...   Dec 23 2011, 15:36
|- - aaarrr   Цитата(Flexz @ Dec 23 2011, 19:36) Кодret...   Dec 25 2011, 18:58
- - toweroff   Я и спрашиваю про ББ, про embedded просто удочка з...   Dec 23 2011, 15:42
- - Flexz   Цитата(aaarrr @ Dec 25 2011, 22:58) Это е...   Dec 26 2011, 06:39
- - aaarrr   Ресурсом совсем не обязательно являются объекты в ...   Dec 26 2011, 07:43
- - Flexz   Ну это понятно. Подход-то от этого не меняется.   Dec 26 2011, 07:54


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 11th August 2025 - 22:04
Рейтинг@Mail.ru


Страница сгенерированна за 0.01424 секунд с 7
ELECTRONIX ©2004-2016