Гость
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Перехват исключений / 3 сообщений из 3, страница 1 из 1
13.04.2011, 13:00
    #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
13.04.2011, 14:02
    #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
14.04.2011, 12:31
    #37216149
_usa__83_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перехват исключений
Dima T,

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


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