Здравствуйте, Сергей Губанов, Вы писали:
СГ>Здравствуйте, Nickolay Ch, Вы писали:
СГ>http://www.rsdn.ru/Forum/Message.aspx?mid=1496415&only=1Автор: Nickolay Ch
Дата: 19.11.05
NC>>А вот очень бы хотелось услышать, что вы предлагаете на замену эксепшенов, только мб в новой теме. Они много чем не нравятся, но пока не видно лучших механизмов обработки ошибок.
СГ>Я делю ошибки на две категории:
СГ>1) ошибки в данных (программа на вход получила неправильные данные);
СГ>2) ошибки в программе (программист ошибся: а) просто ошибся; б) сложно ошибся — в дизайне/архитектуре).
СГ>Ошибки категори (1) легко обрабатывается без механизма exceptions, так надо проектировать просто.
СГ>Ошибки категории (2) фатальные, тут программу надо завершать — в программе ошибка, т.е. программа не правильная. Использовать exception только для того чтобы правильно завершить работу программы (ну там закрыть открытые ресурсы), только для этого чтоли? Закрыть открытое можно и другими способами.
Посыл неверный.
Пример: некий оффлайн клиент. Пользователь отредактировал документ и хочет его скинуть на сервер. Сервер недоступен. Какая это ошибка в вашей терминологии? На 1ую непохоже, а во втором случае надо завершить программу? И все, что было создано пропадет?
Аналогично с сохранением файла на носитель, на котором кончилось место. По идее надо дать возможность сменить носитель и т.д., а не молча закрыть прогу.
Опять возвращаемся к кодам ошибок или исключениям.