|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
13.10.2023, 19:45 | #1 |
Новичок
Джуниор
Регистрация: 13.10.2023
Сообщений: 2
|
Обработка исключительных ситуаций
Я пишу на Delphi5.
В программе всегда бывают ошибки. Бывают случаи когда программа заканчивается с малоинформативным сообщением: "Exeption EAccessViolant in module RMAT.exe at FFFFFF010. Access violant at address 00000010. Read of address 00000010. («Исключение EAccessViolant в модуле RMAT.exe по адресу FFFFFF010. Доступ к нарушению по адресу 00000010. Чтение адреса 00000010.) Если у кого-то есть обработчик таких исключительных ситуаций более информативный (к примеру локализация ошибки до модуля). Может кто-то поделится исходником? Буду благодарен… |
14.10.2023, 01:48 | #2 |
ПШП
Участник клуба
Регистрация: 15.07.2013
Сообщений: 1,894
|
AV т.е. Access Violation это самый сложный для нахождения ошибки в коде случай. Волшебных обработчиков для него нет. Ибо это исключение формирует сам центральный процессор, который ничего не знает и не хочет ничего знать о ваших программах.
Если вы "читатель", то настоятельно рекомендую прочитать Access Violation в деталях Может это чем-то вам поможет. |
14.10.2023, 07:30 | #3 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,759
|
Запустите под отладчиком и смотрите. Обычно из "малоинформативного" сообщения много чего можно понять. В вашем случае: вы пытаетесь читать что-то с базовыми нулевым указателем. Например, не создали обхект и читаете его поле.
|
14.10.2023, 12:21 | #4 |
Новичок
Джуниор
Регистрация: 13.10.2023
Сообщений: 2
|
Спасибо за ответы. Я не совсем "читатель". Когда такая ошибка возникает в процессе написания программы, локализовать ошибку относитенльно просто.
Но иногда такая ситуация в процессе эксплуатации программы (у пользователя), и мне присылается screen экрана. Где искать такую ошибку - неясно. Посему мне обработчик таких ситуаций, кторый локализовал хотя бы процедуру (функцию) возникновения ошибки. Видимо придется писать "с нуля" (идеи имеются)... |
14.10.2023, 12:28 | #5 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,759
|
Вам же указывается адрес, где произошло. Там даже дамп создается.
|
14.10.2023, 14:06 | #6 |
Просветитель
Участник клуба
Регистрация: 26.12.2012
Сообщений: 1,832
|
|
27.10.2023, 14:57 | #7 |
Разъяснятор
Форумчанин
Регистрация: 21.04.2022
Сообщений: 126
|
Можно скомпилировать программу с EurekaLog. И если покрутить настройки - ошибка у пользователя будет выводиться с сообщением, в каком модуле, в какой строке исходного кода произошла ошибка. Для Delphi 7 такое возможно, если не ошибаюсь. Для Delphi 5 - не знаю. Или просто выводит в ошибке какой модуль, какая функция - не помню точно - выводит ли строку ошибки.
Последний раз редактировалось hexor_boo; 27.10.2023 в 15:01. |
28.10.2023, 01:17 | #8 |
ПШП
Участник клуба
Регистрация: 15.07.2013
Сообщений: 1,894
|
|
21.11.2023, 23:35 | #9 |
Пользователь
Регистрация: 11.12.2012
Сообщений: 20
|
У Эвркики есть 30 дневный бесплатный период, которого с лихвой хватит отловить не только AV но и то что забыли "освободить" на выходе
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Обработка исключительных ситуаций С++ | Multiman | Помощь студентам | 2 | 06.04.2012 19:39 |
Обработка исключительных ситуаций | Anubys | C++ Builder | 3 | 11.03.2012 20:55 |
Обработка исключительных ситуаций | Виктория7777 | Общие вопросы Delphi | 2 | 15.12.2010 17:28 |
Обработка исключительных ситуаций | MeTeOpA | БД в Delphi | 4 | 17.06.2010 09:58 |