|
|
В 8.3.15 появился стек ошибок |
☑ |
|
0
Tonik992
13.10.19
✎
20:45
|
Появился стек ошибок, а как из ИнформацияОбОшибке() его вытащить - не понятно. В свойствах есть информация только о номере строки текущего модуля.
ПодробноеПредставлениеОшибке(ИнформацияОбОшибке()) - покажет полный стек ошибки, что очень странно.
Незадокументированная фича или что я делаю не так? Как выскребсти полный стек ошибок программным способом?
|
|
|
1
Tonik992
13.10.19
✎
20:46
|
Выскребсти так, чтобы он был в структурированном виде, как при вызове метода ИнформацияОбОшибке()
|
|
|
2
H A D G E H O G s
13.10.19
✎
21:08
|
Ну обойди рекусривно
|
|
|
3
Tonik992
13.10.19
✎
21:12
|
(2) Не понял идею.
|
|
|
4
ПросТак
13.10.19
✎
21:16
|
(3)Трангессивным способом.
|
|
|
5
H A D G E H O G s
13.10.19
✎
21:17
|
ИнформацияОбОшибке (ErrorInfo)
Причина (Cause)
Использование:
Только чтение.
Описание:
Тип: ИнформацияОбОшибке, Неопределено.
Содержит информацию о причине для данной ошибки. Если таковой не было, то Неопределено.
Доступность:
Тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение (клиент), мобильное приложение (сервер).
Использование в версии:
Доступен, начиная с версии 8.1.
|
|
|
6
H A D G E H O G s
13.10.19
✎
21:18
|
Доступен, начиная с версии 8.1.
|
|
|
7
Tonik992
13.10.19
✎
21:19
|
(5) в свойстве "Причина" - Неопределено.
Неопределено как в самом "низу" стека, так и в самом верху.
|
|
|
8
H A D G E H O G s
13.10.19
✎
21:29
|
(7) Попробуй записать свойство ИнформацияОбОшибке в переменную и потом уже смотреть в отладчике, ну или выведи в Сообщить()
|
|
|
9
Tonik992
13.10.19
✎
21:36
|
(8) Все это проделал. Неопределено в любом случае.
Примерный стек вызова:
МодульДокумента -> ОбщийМодуль1.Операция1() -> ОбщийМодуль2.Операция2() -> ОбщийМодуль3.Операция3()
В процедура ОбщийМодуль3.Операция3() возникает ошибка "Поле объекта не обнаружено".
В модуле объекта, в исключении, ИнформацияОбОшибке() отображает место возникновения ошибки в ОбщийМодуль3.Операция3(). Стека не видно, а в свойстве "Причина" через Сообщить() не выводит ничего.
|
|
|
10
Tonik992
13.10.19
✎
21:42
|
ПодробноеПредставлениеОшибке(ИнформацияОбОшибке()) показывает прекрасную картину:
Поле объекта не обнаружено (ошибка)
{ОбщийМодуль.Расчет2.Модуль(57)}: тест = Запись.ошибка;
{ОбщийМодуль.Расчет.Модуль(49)}: Расчет2.вложение1(Запись);
{Документ.ВводПроизвольныхНачисленийИУдержаний.МодульОбъекта(29)}: Расчет.РассчитатьЗаписи(Ссылка);
Видимо это новшество пока только в таком виде можно использовать.
|
|
|
11
RomanYS
13.10.19
✎
21:49
|
(10) Норм. В совместимости работает?
|
|
|
12
Tonik992
13.10.19
✎
21:58
|
(11) Да, даже с 8.3.10 работает.
|
|
|
13
Tonik992
13.10.19
✎
22:00
|
(11) Это не просто норм. Это даже словами не описать.
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший