Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Игнорирование except блока
|
|||
|---|---|---|---|
|
#18+
Есть такой код Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. В последнее время в логе стала появляться надписьExternal exception 406D1388Т.е. исключение выходит из этой процедуры и отлавливается вышестоящим обработчиком. Вопрос: как такое может происходить? Модуль не менялся с августа 2019. Скомпилирован на XE3 под Win64 и до этого работало как часы. Есть глупое предположение, что что-то поломалось с обновлением Windows, но это из разряда предположить хоть что-нибудь. С уважением, Vasilisk ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2021, 21:10 |
|
||
|
Игнорирование except блока
|
|||
|---|---|---|---|
|
#18+
Так, первый кандидат есть. Здесь делают так Код: plaintext 1. sizeof(ULONG_PTR) - это 8 байт для x64. Но до этого все работало в том числе и на x64 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2021, 21:28 |
|
||
|
Игнорирование except блока
|
|||
|---|---|---|---|
|
#18+
Offtop Автор знает про это ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2021, 21:38 |
|
||
|
Игнорирование except блока
|
|||
|---|---|---|---|
|
#18+
Zelius Автор знает про это ? К слову, в Rio почти такая же реализация, кроме того, что отлавливаются все исключения Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2021, 21:46 |
|
||
|
Игнорирование except блока
|
|||
|---|---|---|---|
|
#18+
Сейчас проверил вот такой код в XE3 и Rio при компиляции под Win64 Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. исключение вообще не поднимается и выделенная строка без вопросов выполняется. Имя потока тоже меняется ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2021, 22:02 |
|
||
|
Игнорирование except блока
|
|||
|---|---|---|---|
|
#18+
А разница между первым и последним в чём? Векторные обработчики никто, случаем, не ставит? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2021, 23:33 |
|
||
|
Игнорирование except блока
|
|||
|---|---|---|---|
|
#18+
GunSmoker А разница между первым и последним в чём? GunSmoker Векторные обработчики никто, случаем, не ставит? Основной вопрос - почему исключение вываливается наружу? И почему я такого поведения не вижу у себя? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2021, 11:43 |
|
||
|
Игнорирование except блока
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_, предположения: 1) E не типа EExternalException 2) E.ExceptionRecord^.ExceptionCode <> CExceptionCode ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2021, 11:50 |
|
||
|
Игнорирование except блока
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_, логируй таки действительный класс исключения. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2021, 11:53 |
|
||
|
Игнорирование except блока
|
|||
|---|---|---|---|
|
#18+
P.S. а ещё у меня было: исключения игнорировались когда портилась память (запись по неинициализированному указателю) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2021, 11:55 |
|
||
|
Игнорирование except блока
|
|||
|---|---|---|---|
|
#18+
Кроик Семён предположения: И еще: вот полный код проекта Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. Кроик Семён а ещё у меня было: исключения игнорировались когда портилась память ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2021, 12:11 |
|
||
|
Игнорирование except блока
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_, два вопроса 1) Код: pascal 1. 2) Код: pascal 1. почему спрашиваю, ведь аргумент @LInfo ожидается массивом, т.е. все ячейки должны быть одного размера и без пропусков из-за выравнивания в record ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2021, 12:37 |
|
||
|
Игнорирование except блока
|
|||
|---|---|---|---|
|
#18+
Итак код: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. SetThreadName OK Запускаю не из под отладчика, но скомпилированное под Win32SetThreadName Internal catched 406D1388 OK Запускаю не из под отладчика Win64 приложениеSetThreadName Internal catched 00000000 Class: EExternalException, True, Msg: External exception 406D1388 И как к этому относиться? Сделал логирование ExceptionRecord Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Получил такоеCode: 00000000, Flags: 00000000, Record: 000000000042E398, Addr: 000000000014FDD0, ParamCount: 4217187Явный мусор. Компилировал и в XE3 и в Rio ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2021, 12:54 |
|
||
|
Игнорирование except блока
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_исключение вообще не поднимается и выделенная строка без вопросов выполняется. Имя потока тоже меняется _Vasilisk_Запускаю из под отладчика SetThreadName OK Запускаю не из под отладчика SetThreadName Internal catched 406D1388 OK Ну это как раз "as designed". Возбуждение исключения - это сигнал отладчику. Если он подключён - он обрабатывает исключение сразу. Если отладчика нет - то некому обработать исключение, вот оно до except и поднимается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2021, 13:05 |
|
||
|
Игнорирование except блока
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_SetThreadName Internal catched 00000000 Class: EExternalException, True, Msg: External exception 406D1388 Воспроизводится. Надо глянуть... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2021, 13:08 |
|
||
|
Игнорирование except блока
|
|||
|---|---|---|---|
|
#18+
Совсем потерялся. На Win2008 вот такой код Код: pascal 1. 2. 3. 4. 5. Выводит три различных значения. Как это? Приложение все то же - консольное однопоточное ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2021, 13:09 |
|
||
|
Игнорирование except блока
|
|||
|---|---|---|---|
|
#18+
Короче, это баг в RTL Delphi. Пиши в QC. Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2021, 13:28 |
|
||
|
Игнорирование except блока
|
|||
|---|---|---|---|
|
#18+
GunSmoker это баг в RTL Delphi Если я скажу, что до этого код работал. Могло такое быть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2021, 13:50 |
|
||
|
Игнорирование except блока
|
|||
|---|---|---|---|
|
#18+
GunSmoker, может путаю, но вот это Код: pascal 1. случаем не должно быть Код: pascal 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2021, 13:50 |
|
||
|
Игнорирование except блока
|
|||
|---|---|---|---|
|
#18+
а стоп, глупость сморозил, думал о типе string ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2021, 13:54 |
|
||
|
Игнорирование except блока
|
|||
|---|---|---|---|
|
#18+
Кроик Семён может путаю, но вот это ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2021, 13:54 |
|
||
|
Игнорирование except блока
|
|||
|---|---|---|---|
|
#18+
10.3 Rio, не вижу смысла проверять где-то ещё, если ты говоришь, что аж в XE3 это воспроизводится. Очевидно, никто это не проверял. _Vasilisk_Если я скажу, что до этого код работал. Могло такое быть? Вполне. "Если код работает - это не значит, что он правильный". Я глубоко не копал, но там ExceptionRecord передаётся по указателю: Код: pascal 1. 2. 3. Заметь, что в объекте Delphi правильно указывается код исключения ('External exception 01010101'), но при этом в ER - мусор. Т.е. в объекте Delphi сохраняется указатель на временное положение ER на стеке. Тогда при дальнейшем выполнении тут будет "как повезёт". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2021, 14:00 |
|
||
|
Игнорирование except блока
|
|||
|---|---|---|---|
|
#18+
Оформляй, может под тестирование бетт 10.5 решат/успеют пофиксить ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2021, 15:47 |
|
||
|
|

start [/forum/topic.php?fid=58&fpage=18&tid=2037261]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
40ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
59ms |
get tp. blocked users: |
2ms |
| others: | 283ms |
| total: | 431ms |

| 0 / 0 |
