Как принято возвращать код ошибки из функции в приложениях Lazarus (функция NonexistentStandardLazarusSetErrorCode(var code: LazErrorType))?
P. S. Конечно, можно изобрести свой способ, но нет ли готового, общепринятого?
Модератор: Модераторы
MageSlayer писал(а):Э-э.
Стандартный?
Ну, исключения, или просто код возврата. Лишние глобальные переменные, имхо, никчему.
krab писал(а):MageSlayer писал(а):Э-э.
Стандартный?
Ну, исключения, или просто код возврата. Лишние глобальные переменные, имхо, никчему.
У каждой функции свой, особый, список кодов возврата, единого типа TError=(erErrorOne, erErrorGreat, erErrorAwful) нет?
raise Exception.Create('Error message');
Odyssey писал(а):Если функция находится в том же приложении (т.е. не в динамической библиотеке), я предпочитаю использовать
- Код: Выделить всё
raise Exception.Create('Error message');
А.Н. писал(а):А как быть в случае, когда исключение выбрасывается в середине цикла, и наступает пиз...^Wхорошо?
Приходится оборачивать пустыми try/except.
A.H писал(а):А как быть в случае, когда исключение выбрасывается в середине цикла, и наступает пиз...^Wхорошо?
while Condition do
begin
try
// ...
except
on E: YourException do
begin
// обработка
end;
end;
end;
А.Н. писал(а):Приходится оборачивать пустыми try/except.
А.Н. писал(а):Вопрос в том как с ними работать по-человечески? Или, exceptions - это, из серии "гладко было на бумаге, да забыли про овраги"?
А.Н. писал(а):Зато, если выкинет в середине цикла, который должен обработать все элементы (и после него ещё должна быть обработка), программа вообще никак не будет работать. Зависнет, например. А так, элемент будет пропущен и обработка продолжится. К тому же, если исключения выбрасываются библиотекой, что мне искать все классы исключений, которые она может выбросить? Но я не спорю - это действительно неправильно. Вопрос в том как с ними работать по-человечески? Или, exceptions - это, из серии "гладко было на бумаге, да забыли про овраги"?
Добавлено спустя 1 минуту 53 секунды:
2MageSlayer:
Такое же, как и всё остальное. Один из случаев, когда я не понимаю, как с ними правильно работать.
Ещё, например, меня интересует тонна проверок на nil. Ведь, по-идее, в коде не должно быть таких проверок?
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 47