powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Пишу проект базы данных, система и передача данных
25 сообщений из 58, страница 2 из 3
Пишу проект базы данных, система и передача данных
    #39496871
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и в ухо ему, в ухо! (С)
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Пишу проект базы данных, система и передача данных
    #39496875
Sandist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящий,
)))

Код: pascal
1.
2.
if Assigned (qrTemp) then
  FreeAndNil (qrTemp)
...
Рейтинг: 0 / 0
Пишу проект базы данных, система и передача данных
    #39497012
pgiw99oeo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пиши, чайнику у чайника понятней будет
то, что для профи само собой разумеется чайнику надо рассказать (может быть)
...
Рейтинг: 0 / 0
Пишу проект базы данных, система и передача данных
    #39497019
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sandist
Код: pascal
1.
2.
if Assigned (qrTemp) then
  FreeAndNil (qrTemp)

Не в этом деле. К тому же, оно не может быть не Assigned. А если б даже и могло - все равно это была бы бессмысленная проверка.
...
Рейтинг: 0 / 0
Пишу проект базы данных, система и передача данных
    #39497024
asutp2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
schiSandist3. Выгрузка результата Query в текстовый файл


За except end я бы оторвал руки сразу, уж извини.
почему же, иногда можно игнорировать возникающие исключения вместо беспощадного прекращения работы программы
...
Рейтинг: 0 / 0
Пишу проект базы данных, система и передача данных
    #39497052
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asutp2иногда можно игнорировать возникающие исключения вместо беспощадного прекращения работы программыНе очень понял. Программа ведь и так и так прекратит работу в месте возникновения исключения, игнорируешь ты его или обработаешь, не важно.
...
Рейтинг: 0 / 0
Пишу проект базы данных, система и передача данных
    #39497073
white_nigger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRockasutp2иногда можно игнорировать возникающие исключения вместо беспощадного прекращения работы программыНе очень понял. Программа ведь и так и так прекратит работу в месте возникновения исключения, игнорируешь ты его или обработаешь, не важно.Что-то новенькое
...
Рейтинг: 0 / 0
Пишу проект базы данных, система и передача данных
    #39497078
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
white_niggerYuRockпропущено...
Не очень понял. Программа ведь и так и так прекратит работу в месте возникновения исключения, игнорируешь ты его или обработаешь, не важно.Что-то новенькое Чо?)
Прогркмма - я имел ввиду, конечно, код программы. Не пойдет дальше выполнение кода после исключения, а перейдет в обработчик исключений последнего уровня, если он есть.
"игнорировать" (это тоже не я так назвал, а автор выше) - это сделать пустой обработчик.
...
Рейтинг: 0 / 0
Пишу проект базы данных, система и передача данных
    #39497081
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRockwhite_niggerпропущено...
Что-то новенькое Чо?)
Прогркмма - я имел ввиду, конечно, код программы. Не пойдет дальше выполнение кода после исключения, а перейдет в обработчик исключений последнего уровня, если он есть.
"игнорировать" (это тоже не я так назвал, а автор выше) - это сделать пустой обработчик.
Товарищ Кличко. Виталий Владимирович. Перелогиньтесь.
...
Рейтинг: 0 / 0
Пишу проект базы данных, система и передача данных
    #39497093
schi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sandist
Код: pascal
1.
2.
3.
  finally
    try CloseFile(F); except end;
  end;





Почему отрывать руки за такой код: потому что если файл по каким-то причинам не сможет быть корректно закрыт (банально место на диске кончится), то об этом никто не узнает. Возможно, никогда.
...
Рейтинг: 0 / 0
Пишу проект базы данных, система и передача данных
    #39497104
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
schiSandist
Код: pascal
1.
2.
3.
  finally
    try CloseFile(F); except end;
  end;





Почему отрывать руки за такой код: потому что если файл по каким-то причинам не сможет быть корректно закрыт (банально место на диске кончится), то об этом никто не узнает. Возможно, никогда.
+1
Файл будет страдацъ в темноте и одиночестве, покрывшись паутиной.
...
Рейтинг: 0 / 0
Пишу проект базы данных, система и передача данных
    #39497105
asutp2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
простейший пример, когда можно обойтись пустым except end :
Код: pascal
1.
2.
3.
4.
5.
6.
IsCorrect := False;
try
  StrToInt(SomeText);
  IsCorrect := True;
except
end;


конечно это можно переписать немного иначе, но корректность первого способа (включая пустой блок except end ) это не отменяет:
Код: pascal
1.
2.
3.
4.
5.
6.
try
  StrToInt(SomeText);
  IsCorrect := True;
except
  IsCorrect := False;
end;
...
Рейтинг: 0 / 0
Пишу проект базы данных, система и передача данных
    #39497106
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asutp2простейший пример, когда можно обойтись пустым except end :
Код: pascal
1.
2.
3.
4.
5.
6.
IsCorrect := False;
try
  StrToInt(SomeText);
  IsCorrect := True;
except
end;


конечно это можно переписать немного иначе, но корректность первого способа (включая пустой блок except end ) это не отменяет:
Код: pascal
1.
2.
3.
4.
5.
6.
try
  StrToInt(SomeText);
  IsCorrect := True;
except
  IsCorrect := False;
end;


Ложь.
Если бы ты мог привести полезный код, ты бы его привел.
А тебе пришлось обойтись надуманный примером, да еще и оговорку ввести.
...
Рейтинг: 0 / 0
Пишу проект базы данных, система и передача данных
    #39497111
asutp2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чччД,

почему надуманный пример? вполне себе реальный пример проверки корректности введенного текста как целого числа, например в диалоге по нажатию кнопки OK))
И да, где я написал оговорку? Я привел два равнозначных варианта, имеющих один и тот же результат. Первый вариант использует пустой блок except end и этот пустой блок абсолютно корректен.
...
Рейтинг: 0 / 0
Пишу проект базы данных, система и передача данных
    #39497113
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asutp2чччД,

почему надуманный пример? вполне себе реальный пример проверки корректности введенного текста как целого числа, например в диалоге по нажатию кнопки OK))
И да, где я написал оговорку? Я привел два равнозначных варианта, имеющих один и тот же результат. Первый вариант использует пустой блок except end и этот пустой блок абсолютно корректен.
Ты настаиваешь, что привел пример своего реального (рабочего) кода?
...
Рейтинг: 0 / 0
Пишу проект базы данных, система и передача данных
    #39497115
asutp2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чччД,

не просто утверждаю, а клятвенно клянусь))) вполне себе реальный код)))

Кстати рекомендую посмотреть исходный код системной функции StrToIntDef :
Код: pascal
1.
2.
3.
4.
5.
6.
7.
function StrToIntDef(const S: string; Default: Integer): Integer;
var
  E: Integer;
begin
  Val(S, Result, E);
  if E <> 0 then Result := Default;
end;


что мы видим в данном коде? а видим мы то, что снаружи мы не узнаем, корректное ли значение было в параметре S. Может оно было корректное, но совпало со значением по умолчанию. А может было некорректное и функция вернула значение параметра Default. Возможное наличие факта ошибки никуда не передается, что аналогично пустому except end . Или Эмба тоже стреляет себе в ногу?
...
Рейтинг: 0 / 0
Пишу проект базы данных, система и передача данных
    #39497116
Kazantsev Alexey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asutp2вполне себе реальный код)))
Он должен быть переписан, чтобы быть нормальным:
Код: pascal
1.
2.
3.
4.
5.
6.
7.
try
  StrToInt(SomeText);
  IsCorrect := True;
except
 On EConvertError Do
  IsCorrect := False;
end;
...
Рейтинг: 0 / 0
Пишу проект базы данных, система и передача данных
    #39497117
Kazantsev Alexey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asutp2а видим мы то, что снаружи мы не узнаем, корректное ли значение было в параметре S
Это потому, что семантика данной функции этого не подразумевает.
...
Рейтинг: 0 / 0
Пишу проект базы данных, система и передача данных
    #39497119
asutp2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kazantsev Alexeyasutp2вполне себе реальный код)))
Он должен быть переписан, чтобы быть нормальным:
Код: pascal
1.
2.
3.
4.
5.
6.
7.
try
  StrToInt(SomeText);
  IsCorrect := True;
except
 On EConvertError Do
  IsCorrect := False;
end;


и получаем возможность получения неопределенного состояния переменной IsCorrect. Кто сказал, что возможно только исключение EConvertError?
...
Рейтинг: 0 / 0
Пишу проект базы данных, система и передача данных
    #39497120
asutp2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kazantsev Alexeyasutp2а видим мы то, что снаружи мы не узнаем, корректное ли значение было в параметре S
Это потому, что семантика данной функции этого не подразумевает.ну то есть Эмбовские функции могут себе такую семантику позволить, а я в своем коде не могу, да? Еще раз напоминаю, что при использовании данной функцией мы не сможем узнать корректность исходной текстовой строки и соответственно не узнаем об ошибке. Противники использования пустого блока except end как раз этим и аргументируют)))
И уточню - я тоже считаю неправильным скрытие исключений во большинстве случаев, но при этом считаю, что в некоторых ситуациях это допустимо.
...
Рейтинг: 0 / 0
Пишу проект базы данных, система и передача данных
    #39497122
Kazantsev Alexey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asutp2и получаем возможность получения неопределенного состояния переменной IsCorrect
Если это переменная, а не имя функции, то код должен быть другим.

asutp2Кто сказал, что возможно только исключение EConvertError?
В том-то и дело, что, например, Access Violation ни коим образом не свидетельствует о некорректности строкового представления числового значения. Оно свидетельствует о кое-чём другом.
...
Рейтинг: 0 / 0
Пишу проект базы данных, система и передача данных
    #39497123
Kazantsev Alexey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asutp2Еще раз напоминаю, что при использовании данной функцией мы не сможем узнать корректность исходной текстовой строки и соответственно не узнаем об ошибке
Ещё раз: семантика данной функции такова, что в случае невозможности преобразовать строку в число, она возвращает дефолтное значение. Если в процессе работы функции возникнет другая проблема она не станет глотать исключения.
...
Рейтинг: 0 / 0
Пишу проект базы данных, система и передача данных
    #39497124
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asutp2...Эмбовские функции могут себе такую семантику позволить, а я в своем коде не могу, да?...
Ссылаться на "взрослых дяденек" не стоит, даже в шутку.

asutp2...
И уточню - я тоже считаю неправильным скрытие исключений во большинстве случаев, но при этом считаю, что в некоторых ситуациях это допустимо.
Ты не смог привести примера, когда это допустимо. Например, StrToIntDef "с контролем" можно написать так:

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
function YourStrToIntDef(const aSrcStr : string; aDefValue : integer; out aIsCorrect : boolean) : integer
var
  fDummy : integer
begin
  val(aSrcStr, Result, fDummy);
  aIsCorrect := fDummy > 0;
 if not aIsCoffect then 
  Result := aDefValue; 
...
Рейтинг: 0 / 0
Пишу проект базы данных, система и передача данных
    #39497141
asutp2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kazantsev Alexey,

ок, ты меня убедил)) исключение AV должно доходить до глобального обработчика исключений

чччДasutp2...Эмбовские функции могут себе такую семантику позволить, а я в своем коде не могу, да?...
Ссылаться на "взрослых дяденек" не стоит, даже в шутку.
С чего это вдруг? Если для тебя Эмба это небожители, то ты наверное зря выбрал нашу профессию)))))))))) Я же пишу так, как мне позволяют мои внутренние убеждения и оснований не верить моим убеждениям нет (с) ))))))
...
Рейтинг: 0 / 0
Пишу проект базы данных, система и передача данных
    #39497222
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asutp2...

чччДпропущено...

Ссылаться на "взрослых дяденек" не стоит, даже в шутку.
С чего это вдруг? Если для тебя Эмба это небожители, то ты наверное зря выбрал нашу профессию)))))))))) Я же пишу так, как мне позволяют мои внутренние убеждения и оснований не верить моим убеждениям нет (с) ))))))
Аргументы вроде "вон они ТАК делают" в данном случае говорят лишь о твоей затянувшейся инфантильности.
Количество закрывающих скобочек, наверное, тоже.
...
Вернись все же к коду, он куда лучше демонстрирует твои "убеждения".
...
Рейтинг: 0 / 0
25 сообщений из 58, страница 2 из 3
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Пишу проект базы данных, система и передача данных
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]