Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Как узнать стек вызовов в TRY...CATCH?
|
|||
|---|---|---|---|
|
#18+
При обработке ошибок в блоке CATCH можно узнать имя процедуры (свойстве .Procedure), где возникла ошибка. Однако узнать, что это, скажем, метод Destroy радости мало. Попробуй потом найди нужный дестрой среди десятков модулей! При традиционной обработке ошибок можно было определить последовательность вызовов модулей с помощью PROGRAM(n), что сильно упрощало задачу. Однако в CATCH это не работает. Может, кто подскажет решение? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2004, 16:27 |
|
||
|
Как узнать стек вызовов в TRY...CATCH?
|
|||
|---|---|---|---|
|
#18+
Внимательно читайте пункт справки VFP : Структурная обработка ошибок уважаемый. Вообще-то в CATCH объект Exception все про всех знает, а уж если он не знает (вне зоны действия) то срабатывает onError метод в цепочке вызовов , и уж если он не сможет обработать тогда старый милый обработчик по ON ERROR. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2004, 20:50 |
|
||
|
Как узнать стек вызовов в TRY...CATCH?
|
|||
|---|---|---|---|
|
#18+
Уважаемый! Вы не совсем поняли мой вопрос. Предположим, в главном модуле программы Вы основной код заключен в TRY...CATCH. В этом коде Вы создаете объект из др. модуля, в нем создаете еще десяток объектов из разных программных модулей. Где-то в методе Init случилась ошибка. Если ни в одном из классов не предусмотрена своя обработка ошибок, то сработает обработчик главного модуля, где можно узнать лишь, что ошибка случилась в методе Init в N-ой строке. При традиционной обработке ошибок можно было бы узнать всю цепочку вызовов (например AAA.DO/BBB.INIT/CCC.INIT). Вопрос в том, как получить больше информации для локализации места возникновения ошибки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2004, 10:32 |
|
||
|
Как узнать стек вызовов в TRY...CATCH?
|
|||
|---|---|---|---|
|
#18+
2 BNick AFAIK никак пока нельзя. MS сделало эту обработку больше как "локальную" - т.е. предполагается что "внешний" TRY-ENDTRY не будет пытаться всё сам обработать, а будет использовать инфу словленную во внутренних TRY-ENDTRY (в соответствующих методах - и "внутренние" передадут Exception-объект наружу если посчитают нужным передать обработку "далее") - ну а уж коли таких нету, то ой :( Posted via ActualForum NNTP Server 1.0 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2004, 23:49 |
|
||
|
Как узнать стек вызовов в TRY...CATCH?
|
|||
|---|---|---|---|
|
#18+
Неудобно очень, что MS не реализовал такую возможность. К сожалению, есть много старых классов и функций, от которых не хочется, да и не получится отказаться. Переписывать всю обработку ошибок по-новому слишком трудоемко :( Вот и пытаюсь скрестить ежа и ужа :) Хотя местами TRY...ENDTRY облегчает жизнь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2004, 14:23 |
|
||
|
Как узнать стек вызовов в TRY...CATCH?
|
|||
|---|---|---|---|
|
#18+
> Как узнать больше информации о месте возникновения ошибки... А Вы не пробовали пользоваться Debug API ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2004, 14:33 |
|
||
|
Как узнать стек вызовов в TRY...CATCH?
|
|||
|---|---|---|---|
|
#18+
2 BNick А по мне так и не нужно ничего "переделывать" - обработка в событиях Error вполне прилично работает. А Try-Endtry как раз для _локальных_ ситуаций очень хороша - ну там где только 1 уровень надо "защитить" от ошибок... Posted via ActualForum NNTP Server 1.0 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2004, 03:19 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=32712221&tid=1595734]: |
0ms |
get settings: |
10ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
90ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
60ms |
get tp. blocked users: |
2ms |
| others: | 266ms |
| total: | 471ms |

| 0 / 0 |
