Skip to content

Commit 334b073

Browse files
authored
Добавлен вывод стек-трейса при исключении
1 parent 2d8e6e8 commit 334b073

File tree

1 file changed

+36
-2
lines changed

1 file changed

+36
-2
lines changed

src/bdd-asserts.os

Lines changed: 36 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -299,8 +299,42 @@
299299
КонецФункции
300300

301301
Процедура ВызватьОшибкуПроверки(Знач СообщениеОшибки)
302-
Префикс = "["+ СтатусыРезультатаТестирования.ОшибкаПроверки + "]";
303-
ВызватьИсключение Префикс + " " + СообщениеОшибки;
302+
Префикс = "[" + СтатусыРезультатаТестирования.ОшибкаПроверки + "]";
303+
ТекстИсключения = Префикс + " " + СообщениеОшибки;
304+
Попытка
305+
ВызватьИсключение ТекстИсключения;
306+
Исключение
307+
ИнформацияОбОшибке = ИнформацияОбОшибке();
308+
СтекВызовов = ИнформацияОбОшибке.ПолучитьСтекВызовов();
309+
СтекТрейс = Новый Массив;
310+
СтекТрейс.Добавить("Стек трейс:");
311+
312+
Отступ = "";
313+
СимволОтступа = " ";
314+
ПервыйКадр = Истина;
315+
Для Каждого КадрСтекаВызовов Из СтекВызовов Цикл
316+
// пропустим первый кадр стека, т.к. он ведет на служебный вызов исключения
317+
Если ПервыйКадр Тогда
318+
ПервыйКадр = Ложь;
319+
Продолжить;
320+
КонецЕсли;
321+
322+
Отступ = Отступ + СимволОтступа;
323+
324+
СтрокаСтекТрейса = СтрШаблон(
325+
"%1%2 / Метод %3 / Строка %4",
326+
Отступ,
327+
КадрСтекаВызовов.ИмяМодуля,
328+
КадрСтекаВызовов.Метод,
329+
Формат(КадрСтекаВызовов.НомерСтроки, "ЧГ=")
330+
);
331+
СтекТрейс.Добавить(СтрокаСтекТрейса);
332+
КонецЦикла;
333+
СтекТрейс = СтрСоединить(СтекТрейс, Символы.ПС);
334+
335+
ТекстИсключения = ТекстИсключения + Символы.ПС + СтекТрейс;
336+
ВызватьИсключение ТекстИсключения;
337+
КонецПопытки
304338
КонецПроцедуры
305339

306340
Функция ЛогическоеВыражениеВерно(Знач ЛогическоеВыражение)

0 commit comments

Comments
 (0)