Я решил полностью уйти он кода вида
CodeErrorType MyFunction()
if (MyFunction() == CodeErrorType::OneOfError)
{
// обработка ошибки
}
и создавать иерахии исключений, наподобие Java.
Теперь вопрос, как лучше создавать. Для каждого типа делать свои наборы, чтобы было более понятно, что за проблема или ограничиться выделением общих?
Например, есть базовый тип — BaseException, далее APIException(а от него Win32APIException, WSAException), IOException. Далее уже специальные для классов. Например, класс занимается соединением с сервером и обменом даными, тогда можно: AuthException, PacketFormatException, etc.
Еще хотел сделать сокрытие ошибок разного уровня. Тоесть смысл в том, что если какой-либо класс внутри использует класс для работы с сокетами, то он наружу никогда не отдаст исключение от сокета, он выдаст свое исключение.
Кто поделится опытом обработки ошибок?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>