Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.10.2023, 19:45   #1
promer52
Новичок
Джуниор
 
Регистрация: 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.)

Если у кого-то есть обработчик таких исключительных ситуаций более информативный
(к примеру локализация ошибки до модуля).
Может кто-то поделится исходником? Буду благодарен…
promer52 вне форума Ответить с цитированием
Старый 14.10.2023, 01:48   #2
northener
ПШП
Участник клуба
 
Регистрация: 15.07.2013
Сообщений: 1,872
По умолчанию

AV т.е. Access Violation это самый сложный для нахождения ошибки в коде случай. Волшебных обработчиков для него нет. Ибо это исключение формирует сам центральный процессор, который ничего не знает и не хочет ничего знать о ваших программах.
Если вы "читатель", то настоятельно рекомендую прочитать Access Violation в деталях Может это чем-то вам поможет.
northener вне форума Ответить с цитированием
Старый 14.10.2023, 07:30   #3
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Запустите под отладчиком и смотрите. Обычно из "малоинформативного" сообщения много чего можно понять. В вашем случае: вы пытаетесь читать что-то с базовыми нулевым указателем. Например, не создали обхект и читаете его поле.
p51x вне форума Ответить с цитированием
Старый 14.10.2023, 12:21   #4
promer52
Новичок
Джуниор
 
Регистрация: 13.10.2023
Сообщений: 2
По умолчанию

Спасибо за ответы. Я не совсем "читатель". Когда такая ошибка возникает в процессе написания программы, локализовать ошибку относитенльно просто.
Но иногда такая ситуация в процессе эксплуатации программы (у пользователя), и мне присылается screen экрана. Где искать такую ошибку - неясно. Посему мне обработчик таких ситуаций, кторый локализовал хотя бы процедуру (функцию) возникновения ошибки. Видимо придется писать "с нуля" (идеи имеются)...
promer52 вне форума Ответить с цитированием
Старый 14.10.2023, 12:28   #5
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Вам же указывается адрес, где произошло. Там даже дамп создается.
p51x вне форума Ответить с цитированием
Старый 14.10.2023, 14:06   #6
Vapaamies
Ваш К. О.
Участник клуба
 
Аватар для Vapaamies
 
Регистрация: 26.12.2012
Сообщений: 1,777
По умолчанию

Цитата:
Сообщение от promer52 Посмотреть сообщение
Посему мне обработчик таких ситуаций, кторый локализовал хотя бы процедуру (функцию) возникновения ошибки.
Есть EurekaLog, но он платный. В конкретных возможностях не уверен.
Vapaamies вне форума Ответить с цитированием
Старый 27.10.2023, 14:57   #7
hexor_boo
Разъяснятор
Форумчанин
 
Аватар для hexor_boo
 
Регистрация: 21.04.2022
Сообщений: 106
По умолчанию

Цитата:
Сообщение от Vapaamies Посмотреть сообщение
Есть EurekaLog, но он платный. В конкретных возможностях не уверен.
Можно скомпилировать программу с EurekaLog. И если покрутить настройки - ошибка у пользователя будет выводиться с сообщением, в каком модуле, в какой строке исходного кода произошла ошибка. Для Delphi 7 такое возможно, если не ошибаюсь. Для Delphi 5 - не знаю. Или просто выводит в ошибке какой модуль, какая функция - не помню точно - выводит ли строку ошибки.

Последний раз редактировалось hexor_boo; 27.10.2023 в 15:01.
hexor_boo вне форума Ответить с цитированием
Старый 28.10.2023, 01:17   #8
northener
ПШП
Участник клуба
 
Регистрация: 15.07.2013
Сообщений: 1,872
По умолчанию

Цитата:
Сообщение от Vapaamies Посмотреть сообщение
Есть EurekaLog, но он платный. В конкретных возможностях не уверен.
А зря сомневаетесь в возможностях Эврики. Она даёт максимально возможную информацию при возникновении исключения. Но да она платная, но мы её в своё время купили и не пожалели.
northener вне форума Ответить с цитированием
Старый 21.11.2023, 23:35   #9
darkleo
Пользователь
 
Регистрация: 11.12.2012
Сообщений: 20
По умолчанию

У Эвркики есть 30 дневный бесплатный период, которого с лихвой хватит отловить не только AV но и то что забыли "освободить" на выходе
darkleo вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обработка исключительных ситуаций С++ 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