Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как узнать стек вызовов в TRY...CATCH? / 7 сообщений из 7, страница 1 из 1
23.09.2004, 16:27
    #32708957
BNick
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать стек вызовов в TRY...CATCH?
При обработке ошибок в блоке CATCH можно узнать имя процедуры (свойстве .Procedure), где возникла ошибка. Однако узнать, что это, скажем, метод Destroy радости мало. Попробуй потом найди нужный дестрой среди десятков модулей! При традиционной обработке ошибок можно было определить последовательность вызовов модулей с помощью PROGRAM(n), что сильно упрощало задачу. Однако в CATCH это не работает. Может, кто подскажет решение? :)
...
Рейтинг: 0 / 0
26.09.2004, 20:50
    #32711952
Гость_xxx
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать стек вызовов в TRY...CATCH?
Внимательно читайте пункт справки VFP : Структурная обработка ошибок уважаемый. Вообще-то в CATCH объект Exception все про всех знает, а уж если он не знает (вне зоны действия) то срабатывает onError метод в цепочке вызовов , и уж если он не сможет обработать тогда старый милый обработчик по ON ERROR.
...
Рейтинг: 0 / 0
27.09.2004, 10:32
    #32712221
BNick
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать стек вызовов в TRY...CATCH?
Уважаемый! Вы не совсем поняли мой вопрос. Предположим, в главном модуле программы Вы основной код заключен в TRY...CATCH. В этом коде Вы создаете объект из др. модуля, в нем создаете еще десяток объектов из разных программных модулей. Где-то в методе Init случилась ошибка. Если ни в одном из классов не предусмотрена своя обработка ошибок, то сработает обработчик главного модуля, где можно узнать лишь, что ошибка случилась в методе Init в N-ой строке. При традиционной обработке ошибок можно было бы узнать всю цепочку вызовов (например AAA.DO/BBB.INIT/CCC.INIT). Вопрос в том, как получить больше информации для локализации места возникновения ошибки.
...
Рейтинг: 0 / 0
27.09.2004, 23:49
    #32713754
Igor Korolyov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать стек вызовов в TRY...CATCH?
2 BNick

AFAIK никак пока нельзя. MS сделало эту обработку больше как "локальную" -
т.е. предполагается что "внешний" TRY-ENDTRY не будет пытаться всё сам
обработать, а будет использовать инфу словленную во внутренних TRY-ENDTRY (в
соответствующих методах - и "внутренние" передадут Exception-объект наружу
если посчитают нужным передать обработку "далее") - ну а уж коли таких нету,
то ой :(

Posted via ActualForum NNTP Server 1.0
...
Рейтинг: 0 / 0
28.09.2004, 14:23
    #32714784
BNick
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать стек вызовов в TRY...CATCH?
Неудобно очень, что MS не реализовал такую возможность. К сожалению, есть много старых классов и функций, от которых не хочется, да и не получится отказаться. Переписывать всю обработку ошибок по-новому слишком трудоемко :( Вот и пытаюсь скрестить ежа и ужа :) Хотя местами TRY...ENDTRY облегчает жизнь.
...
Рейтинг: 0 / 0
28.09.2004, 14:33
    #32714809
Гость_xxx
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать стек вызовов в TRY...CATCH?
> Как узнать больше информации о месте возникновения ошибки...
А Вы не пробовали пользоваться Debug API ?
...
Рейтинг: 0 / 0
29.09.2004, 03:19
    #32715689
Igor Korolyov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать стек вызовов в TRY...CATCH?
2 BNick

А по мне так и не нужно ничего "переделывать" - обработка в событиях Error
вполне прилично работает. А Try-Endtry как раз для _локальных_ ситуаций
очень хороша - ну там где только 1 уровень надо "защитить" от ошибок...

Posted via ActualForum NNTP Server 1.0
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как узнать стек вызовов в TRY...CATCH? / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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