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

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