Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Delphi Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2 3 4 5 6 7 8 9 10 .. 37   вперед  Ctrl
 Топик "как я лажанулся"  [new]
чччД
Guest
Есть совершенно идиотские ошибки, о которых стоит рассказать.
13 авг 13, 04:57    [14699670]     Ответить | Цитировать Сообщить модератору
 Re: Топик "как я лажанулся"  [new]
чччД
Guest
Например:

...я целый час тихо сходил с ума от того, что "игнорировалось" исключение.
Exception.CreateFmt('Файл "%s" не найден', [aFileName]);


Причина была в том, что должно было быть вот так:
raise
  Exception.CreateFmt('Файл "%s" не найден', [aFileName]);

- тупо скопировал не две строчки, а одну.
13 авг 13, 05:02    [14699673]     Ответить | Цитировать Сообщить модератору
 Re: Топик "как я лажанулся"  [new]
Гхостик
Guest
Не ошибка, но диагноз. Смотрю на код:
if DataSetField.Value = Null then
  ...
Чувствую - что-то не то, нехорошо как-то. Подумал, подумал, исправил на:

if DataSetField.IsNull then
  ...

Вот теперь другое дело!
13 авг 13, 05:12    [14699679]     Ответить | Цитировать Сообщить модератору
 Re: Топик "как я лажанулся"  [new]
wellwell
Member

Откуда:
Сообщений: 894
function QueryFullProcessImageNameW(hProcess: THandle; dwFlags: DWORD;
  lpExeName: LPTSTR; var lpdwSize: DWORD): BOOL; external kernel32 delayed;


отлично работало, пока не посыпались репорты с 32-битных систем

function QueryFullProcessImageNameW(hProcess: THandle; dwFlags: DWORD;
  lpExeName: LPTSTR; var lpdwSize: DWORD): BOOL; stdcall; external
  kernel32 delayed;


На 64-битных все понятное дело было окей так как конвенция вызовов одна.
13 авг 13, 08:34    [14699832]     Ответить | Цитировать Сообщить модератору
 Re: Топик "как я лажанулся"  [new]
andreymx
Member

Откуда: Запорожье
Сообщений: 43623
если я начну постить свои глупые истории за последние 25 лет, у вас интеренет закончится раньше :)
13 авг 13, 09:23    [14699965]     Ответить | Цитировать Сообщить модератору
 Re: Топик "как я лажанулся"  [new]
TopCore
Member

Откуда: Mariupol, Ukraine
Сообщений: 829
andreymx, лучше в копилку положите свои ошибки, нежели просто сказать, что у Вас их было много.
13 авг 13, 09:40    [14700078]     Ответить | Цитировать Сообщить модератору
 Re: Топик "как я лажанулся"  [new]
andreymx
Member

Откуда: Запорожье
Сообщений: 43623
TopCore
andreymx, лучше в копилку положите свои ошибки, нежели просто сказать, что у Вас их было много.
моя главная ошибка - что я не пошел в начальники
13 авг 13, 11:00    [14700671]     Ответить | Цитировать Сообщить модератору
 Re: Топик "как я лажанулся"  [new]
Sevolod
Member

Откуда:
Сообщений: 105
А я поверил недавно отладчику Дельфи в том, что
32.8811 *21887.09 = 719671.595
13 авг 13, 11:25    [14700833]     Ответить | Цитировать Сообщить модератору
 Re: Топик "как я лажанулся"  [new]
TopCore
Member

Откуда: Mariupol, Ukraine
Сообщений: 829
Sevolod, в чём подвох? Калькулятор мне выдал то же.
13 авг 13, 12:04    [14701146]     Ответить | Цитировать Сообщить модератору
 Re: Топик "как я лажанулся"  [new]
_Groxot_
Member

Откуда: Оттуда
Сообщений: 464
Sevolod,

Sql сказал 719671.594999

Обычно им проще посчитать, учитывая, что Query всегда открыт
13 авг 13, 12:08    [14701181]     Ответить | Цитировать Сообщить модератору
 Re: Топик "как я лажанулся"  [new]
j2me
Member

Откуда: Оттуда
Сообщений: 516
c:\WINDOWS\system32\calc.exe выдал 719671,594999
13 авг 13, 15:56    [14703163]     Ответить | Цитировать Сообщить модератору
 Re: Топик "как я лажанулся"  [new]
как я лажанулся
Guest
куча ошибок из-за незнания стандартных практик
1 не пользовался отладчиком (тупо пытался "исполнить" код в своей голове)
2 боялся лезть в дебри типа исходников VCL (с тем же отладчиком - песня)
3 не читал оф.доку, мсдн и т.п., тупо экспериментировал (да, опыт - лучший учитель, но времени море теряется)
4 велосипедизм вместо гугления (то же примечание)
5 не пользовался VCS (визуальный diff - это песня, а о merge и мечт не могло быть)
6 не пользовался автоматическим тестированием (да и сейчас ленюсь)
13 авг 13, 17:11    [14703755]     Ответить | Цитировать Сообщить модератору
 Re: Топик "как я лажанулся"  [new]
чччД
Guest
...передавал в качестве параметра процедуры ну очень здоровенный массив без модификатора const/var.
13 авг 13, 17:34    [14703905]     Ответить | Цитировать Сообщить модератору
 Re: Топик "как я лажанулся"  [new]
Какья Лажанулсар
Guest
0 писал днями километры сложного кода, в результате ничего не работало и я круто обламывался (потом перешел к принципу мелких шагов и компиления как можно чаще, типа раз в 5 минут - спасибо хейлсбергу за быстрый компилятор)
13 авг 13, 18:41    [14704180]     Ответить | Цитировать Сообщить модератору
 Re: Топик "как я лажанулся"  [new]
DarkMaster
Member

Откуда: Donetsk,Ukraine
Сообщений: 5630
Какья Лажанулсар,

... и все дальше продолжало не работать, т.к. то, что скомпилилось - еще не означает, что оно работает! Вспомнил, что где-то был отладчик.
13 авг 13, 19:24    [14704329]     Ответить | Цитировать Сообщить модератору
 Re: Топик "как я лажанулся"  [new]
Michael Longneck
Member

Откуда: Москва
Сообщений: 2269
Долго искал причину ну очень странных сообщений от драйвера MSSQL в тривиальнейшем коде в многопоточном сервере, пока не нашёл, что все потоки пользовали одно соединение, заданное (хоть и не прямо) через глобальную переменную. threadvar тогда помог.
13 авг 13, 20:20    [14704473]     Ответить | Цитировать Сообщить модератору
 Re: Топик "как я лажанулся"  [new]
Какья Лажанулсар
Guest
по мелочи:
- экономил скобки (забывал правила приоритета операций)
- наворачивал with...do (вложенные - реальное зло)
- не включал Range и Overflow Checking и Use Debug DCUs при отладке и не отключал Optimization
- забывал, что системные настройки могут быть разными (DecimalSeparator, ListSeparator, DPI и размеры экрана и т.п.) - в частности, оставлял Form.Autoscroll=true, .Position=poDesktopCenter
13 авг 13, 21:39    [14704630]     Ответить | Цитировать Сообщить модератору
 Re: Топик "как я лажанулся"  [new]
x77
Member

Откуда:
Сообщений: 1747
старый, но не перестающий удивлять прикол:

procedure TForm1.Button1Click(Sender: TObject);
var
  a: integer;
begin
  a := Low (longint);
  ShowMessage (IntToStr (Abs (a)));
end;

end.


догадайтесь, каким будет модуль отрицательного числа? в данном случае - отрицательным:

К сообщению приложен файл. Размер - 2Kb
14 авг 13, 01:45    [14705517]     Ответить | Цитировать Сообщить модератору
 Re: Топик "как я лажанулся"  [new]
x77
Member

Откуда:
Сообщений: 1747
и еще одна прикольная штука:

procedure TForm1.Button1Click(Sender: TObject);
var
  a, b, c, d: Variant;
begin
  a := '10';
  b := '20';
  c := 30;
  ShowMessage (VarToStr (a + b + c));
  a := '10';
  b := 20;
  c := '30';
  ShowMessage (VarToStr (a + b + c));
end;


суммы будут разные.
14 авг 13, 01:55    [14705533]     Ответить | Цитировать Сообщить модератору
 Re: Топик "как я лажанулся"  [new]
чччД
Guest
x77, :)

Abs (Low(LongInt))


А что бедному Abs() еще остается делать? Хотя, мог бы и исключение выкинуть...
14 авг 13, 02:13    [14705561]     Ответить | Цитировать Сообщить модератору
 Re: Топик "как я лажанулся"  [new]
Было так...
Guest
Однажды ночером.
MyForm.MyButton.Click(Sender: TObject);
begin
  MySuperPuperForm.Create(Application);
  MySuperPuperForm.Show;
end;
F9, MyButton.Click. ' A component named 'MySuperPuperForm' already exists '. O_o !!!
Ч-з 40 минут: А-а-а-а ! Надо убить MySuperPuperForm из автосоздания.
F9, MyButton.Click: ' Access violation at... '. O_o !!!
Еще ч-з 30 минут: А-а-а-а !! Надо же КЛАСС, а не ЭКЗЕМПЛЯР:
begin
  TMySuperPuperForm.Create(Application);
  MySuperPuperForm.Show;
end;
F9, MyButton.Click. ' Access violation at... '. O_o !!!
Еще ч-з 20 минут: А-а-а-а !!!
begin
  MySuperPuperForm := TMySuperPuperForm.Create(Application);
  MySuperPuperForm.Show;
end;
F9, MyButton.Click. Щястье!!! дас ист фантастиш, зи зинд арбайтен.
Итог: этот прид мужик за компом украл у меня полтора часа здорового сна...
14 авг 13, 07:07    [14705665]     Ответить | Цитировать Сообщить модератору
 Re: Топик "как я лажанулся"  [new]
DNShark
Member

Откуда:
Сообщений: 221
А я помню у меня было что-то типа
if MyClass(MyFunction).Value then
do1
else
do2

при том что Value было False оно делало do1
14 авг 13, 11:26    [14706533]     Ответить | Цитировать Сообщить модератору
 Re: Топик "как я лажанулся"  [new]
Sevolod
Member

Откуда:
Сообщений: 105
j2me, Topcore
Ну да. Я поверил отладчику Дельфи, что потеряна точность предыдущих вычислений. И отчаянно пытался ее повысить. А дело-то было в другом.
14 авг 13, 16:13    [14708788]     Ответить | Цитировать Сообщить модератору
 Re: Топик "как я лажанулся"  [new]
JaDi
Member

Откуда: Сызрань, Россия
Сообщений: 3205
1. Несколько месяцев выкладывал новые версии ПО в продакшен и радовался, что не приходит новых отчетов об ошибках. Как оказалось, из-за глюка в компонентах для релизной версии проекта отчеты просто не срабатывали.

2. Обновлял кадровую базу данных Oracle и переносил ее на новый сервер с помощью PL/SQL Developer'а. Но уже на следующий день выяснилось, что из-за глюков в этой утилите и размера базы -- было потеряно 10 из 15 Гб фотографий и сканов. Пришлось сидеть всю ночь и восстанавливать потерянные файлы из бекапа.
14 авг 13, 20:01    [14709806]     Ответить | Цитировать Сообщить модератору
 Re: Топик "как я лажанулся"  [new]
JaDi
Member

Откуда: Сызрань, Россия
Сообщений: 3205
3. Иногда ленился и не хотел писать автоматические тесты для сложных расчетов или алгоритмов, и как результат -- десятки потерянных часов в попытках найти ошибки кода при нестандартных входных данных, а так же постоянная неуверенность -- до конца ли написан код или что-то пропустил.
14 авг 13, 20:14    [14709841]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2 3 4 5 6 7 8 9 10 .. 37   вперед  Ctrl
Все форумы / Delphi Ответить