Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Нет данных в стеке / 22 сообщений из 22, страница 1 из 1
15.06.2017, 09:27:11
    #39471916
Lisichkin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нет данных в стеке
Всем добрый день!
Имеется чужой проект с такой чудной строчкой:

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
procedure TFRM_SPR_SUBG.FormCloseQuery(Sender: TObject;
  var CanClose: Boolean);
begin
  try
    DM.TBL_SPR_SUBG.Post; // DM.TBL_SPR_SUBG.State not in [dsInsert, dsEdit] - мой комментарий и здесь происходит ошибка
  except
  end;
  CanClose := true;
end;



Происходит ошибка. Стек:
DatabaseError('Dataset not in edit or insert mode',$10B8340)
TDataSet.UpdateRecord
TDataSet.Post
TCustomForm.CloseQuery
TCustomForm.Close
TCustomForm.WMClose((16, (0, 0, 0, 0), 0))
TControl.WndProc((16, 0, 0, 0, 0, 0, 0, 0, 0, 0))
TWinControl.WndProc((16, 0, 0, 0, 0, 0, 0, 0, 0, 0))
TCustomForm.WndProc((16, 0, 0, 0, 0, 0, 0, 0, 0, 0))
TWinControl.MainWndProc((16, 0, 0, 0, 0, 0, 0, 0, 0, 0))
StdWndProc(264844,16,0,0)
TWinControl.DefaultHandler((no value))
TCustomForm.DefaultHandler((no value))
TWinControl.WMSysCommand((274, 61536, 16843105, 353, 353, 257, 0))
TCustomForm.WMSysCommand((274, 61536, 16843105, 353, 353, 257, 0))
TControl.WndProc((274, 61536, 16843105, 0, 61536, 0, 353, 257, 0, 0))
TWinControl.WndProc((274, 61536, 16843105, 0, 61536, 0, 353, 257, 0, 0))
TCustomForm.WndProc((274, 61536, 16843105, 0, 61536, 0, 353, 257, 0, 0))
TWinControl.MainWndProc((274, 61536, 16843105, 0, 61536, 0, 353, 257, 0, 0))
StdWndProc(264844,274,61536,16843105)
TApplication.ProcessMessage((264844, 274, 61536, 16843105, 1448765, (353, 257)))
TApplication.HandleMessage
TApplication.Run

Почему в стеке нет ни слова про TFRM_SPR_SUBG.FormCloseQuery???
P.S. Delphi 7, Debug info+Debug DCU установлено.
...
Рейтинг: 0 / 0
15.06.2017, 10:16:05
    #39471953
DarkMaster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нет данных в стеке
Lisichkin,

Ну а при запуске вне среды ошибка есть?
...
Рейтинг: 0 / 0
15.06.2017, 10:30:15
    #39471970
Lisichkin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нет данных в стеке
При запуске без отладчика сообщения об ошибки нет - она гаситься
...
Рейтинг: 0 / 0
15.06.2017, 10:44:26
    #39471986
schi
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нет данных в стеке
LisichkinВсем добрый день!
Имеется чужой проект с такой чудной строчкой:

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
procedure TFRM_SPR_SUBG.FormCloseQuery(Sender: TObject;
  var CanClose: Boolean);
begin
  try
    DM.TBL_SPR_SUBG.Post; // DM.TBL_SPR_SUBG.State not in [dsInsert, dsEdit] - мой комментарий и здесь происходит ошибка
  except
  end;
  CanClose := true;
end;



Происходит ошибка. Стек:
DatabaseError('Dataset not in edit or insert mode',$10B8340)
TDataSet.UpdateRecord
TDataSet.Post
TCustomForm.CloseQuery
^^^^^^^^^^^^^^^

Почему в стеке нет ни слова про TFRM_SPR_SUBG.FormCloseQuery???


А это не та строчка ?

Для любителей глотать исключения в аду приготовлен отдельный котел. И не один.
...
Рейтинг: 0 / 0
15.06.2017, 10:44:31
    #39471987
DetSimen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нет данных в стеке
LisichkinПочему в стеке нет ни слова про TFRM_SPR_SUBG.FormCloseQuery???


Потому что ошибка и происходит в FormCloseQuery. Стек начинает раскручиваться назад, показывая последовательность вызовов ДО этой функции.
...
Рейтинг: 0 / 0
15.06.2017, 10:46:39
    #39471990
goldmi45
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нет данных в стеке
Lisichkin,

Код: pascal
1.
2.
3.
4.
5.
6.
procedure TFRM_SPR_SUBG.FormCloseQuery(Sender: TObject;
  var CanClose: Boolean);
begin
  if DM.TBL_SPR_SUBG.State in [dsInsert, dsEdit] then
    DM.TBL_SPR_SUBG.Post;
end;


И не надо гасить исключения.
...
Рейтинг: 0 / 0
15.06.2017, 10:51:31
    #39471998
Lisichkin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нет данных в стеке
авторИ не надо гасить исключения.
Я кажется указал: авторИмеется чужой проект с такой чудной строчкой, что не являюсь автором этого чуда :))
...
Рейтинг: 0 / 0
15.06.2017, 10:54:55
    #39472003
schi
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нет данных в стеке
Ну и убедиться, что в опциях компилятора указана гайка Stack Frames
...
Рейтинг: 0 / 0
15.06.2017, 11:10:39
    #39472035
GunSmoker
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нет данных в стеке
LisichkinПочему в стеке нет ни слова про

http://www.gunsmoker.ru/2015/02/stack-frames.html
...
Рейтинг: 0 / 0
15.06.2017, 11:11:27
    #39472037
GunSmoker
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нет данных в стеке
schi, не поможет без пересбора RTL/VCL.
...
Рейтинг: 0 / 0
15.06.2017, 12:48:28
    #39472192
schi
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нет данных в стеке
GunSmokerschi, не поможет без пересбора RTL/VCL.

ТС использует use debug dcus, там разве эта опция не включена ?
...
Рейтинг: 0 / 0
15.06.2017, 14:14:23
    #39472294
GunSmoker
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нет данных в стеке
schi, к сожалению - нет.
...
Рейтинг: 0 / 0
15.06.2017, 15:55:55
    #39472420
schi
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нет данных в стеке
GunSmokerschi, к сожалению - нет.

Век живи, век учись. Спасибо.
...
Рейтинг: 0 / 0
15.06.2017, 16:44:00
    #39472473
Lisichkin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нет данных в стеке
Реанимирую тему :)
В наследованном проекте очень много кода типа приведенного выше
Код: pascal
1.
2.
3.
4.
try
........
except
end;



Как я могу найти все такие места??

P.S. Я смотрел на статический анализатор кода FixInsite, но Trial downloads ограничен Delphi 2006, а у меня Delphi 7
...
Рейтинг: 0 / 0
15.06.2017, 16:59:46
    #39472498
Vizit0r
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нет данных в стеке
LisichkinКак я могу найти все такие места??
Внезапно,
Ctrl+Shift+F
...
Рейтинг: 0 / 0
15.06.2017, 17:26:10
    #39472535
Lisichkin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нет данных в стеке
А если серьезно?

81 файл содержит строку except :(
...
Рейтинг: 0 / 0
15.06.2017, 17:52:27
    #39472574
Vizit0r
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нет данных в стеке
LisichkinА если серьезно?

81 файл содержит строку except :(

ну содержит. Так что, ты хочешь суперкнопку "сделать *хорошо* " ? Так чтоб все try..except магически преобраовались во что-то, что тебе понравится?
...
Рейтинг: 0 / 0
15.06.2017, 18:12:39
    #39472603
Bred eFeM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нет данных в стеке
schi, Для любителей глотать исключения в аду приготовлен отдельный котел. И не один .

Правильно, второй для любителей их генерить направо и налево.
...
Рейтинг: 0 / 0
15.06.2017, 18:24:45
    #39472617
rgreat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нет данных в стеке
Bred eFeMschi, Для любителей глотать исключения в аду приготовлен отдельный котел. И не один .

Правильно, второй для любителей их генерить направо и налево.А-ха-ха!
...
Рейтинг: 0 / 0
15.06.2017, 18:28:46
    #39472620
GunSmoker
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нет данных в стеке
Bred eFeM, ты ещё скажи, что этим блоком ловят не Access Violation, который не знают как исправить.
...
Рейтинг: 0 / 0
15.06.2017, 19:50:44
    #39472663
Bred eFeM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нет данных в стеке
GunSmoker,
вот-вот, 81 Ufo Access Violation, а нужен только один:
Код: pascal
1.
program try Run; except WriteLn('Гипс снимают, клиент уезжает!'); end; end.
...
Рейтинг: 0 / 0
16.06.2017, 10:56:33
    #39472955
DarkMaster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нет данных в стеке
Lisichkin,

GExperts поставь - там удобное средство просмотра результатов поиска есть.
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Нет данных в стеке / 22 сообщений из 22, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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