powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Перехват исключений
3 сообщений из 3, страница 1 из 1
Перехват исключений
    #37213935
_usa__83_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
День добрый!

Вот такой вопросик. Есть цепочка вызовов функций: f1()->f2()->f3() .... вот в теле f3() к примеру инструкция a=2+'123', порождает
исключение которое можно перехватить в f2():
try
f3()
catch to eE
throw eE
endtry

если мне оч хочется протолкнуть это исключение выше, в f1() (тот же код что f2() за исключением вызова f2() вместо f3()) я
вижу в перехваченном исключении (в f1()) через UserValue все исключения нижнего уровня, только вот номер строки и тип ошибки
информативен только для первоисточника (a=2+'123') в то время как все остальные имеют тип исключения брошенного
пользователем и соответственно ссылаются на строку throw eE ...

Как же бросать (или не бросать) исключения чтобы видеть на каких инструкциях "промежуточных вызовов" появилась ошибка?
...
Рейтинг: 0 / 0
Перехват исключений
    #37214143
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
примерно так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
eE.UserInfo = GetStack()

func GetStack
local Array laStack[ 2 ]
lcStack = ''
for i =  1  to ASTACKINFO(laStack) -  1 
	lcStack = lcStack + '->' + laStack[i,  3 ] + iif(laStack[i,  5 ] =  0 , '()', '(' + ltrim(str(laStack[i,  5 ])) + ')')
endfor
return substr(lcStack,  3 )
GetStack() - возвращает стэк вызова до точки вызова GetStack()
...
Рейтинг: 0 / 0
Перехват исключений
    #37216149
_usa__83_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dima T,

пасиб попробую
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Перехват исключений
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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