Проблема с перехватом исключения в фоновом методе

tormozit Открыто

Дублирую заявку из проекта ОСкрипт https://github.com/EvilBeaver/OneScript/issues/1495 , т.к. непонятно в какой компоненте причина проблемы. Возможно тут есть влияние Турбоконфа.

Комментарии

tormozit
#1, 29 января 2025 08:29

Актуально


bolsun
#2, ред. 29 января 2025 12:32

Влияния ТурбоКонф тут нет. Функционал не реализован в ОСкрипт.
Я написал в заявке, что нужно добавить в OneScript (на примере BackgroundWorker), чтобы перехватывать исключения из фонового задания.


bolsun
#3, 02 февраля 2025 14:41

Решил сам воспроизвести проблему и у меня все работает нормально.

Процедура ТестФЗ() Экспорт
	Сообщить("ТестФЗ");

	Попытка
		ВызватьИсключение "Исключение!";
	Исключение
		Сообщить("Исключение! " + ОписаниеОшибки());
	КонецПопытки;
КонецПроцедуры

Процедура ВыполнитьФоновоеЗадание() Экспорт
	ФЗ = ФоновыеЗадания.Выполнить(ЭтотОбъект, "ТестФЗ");
	ФЗ.ОжидатьЗавершения();
КонецПроцедуры


bolsun
#4, 02 февраля 2025 14:45

Получается, что OScript пробрасывает исключение в HostApplication, а TurboConf также корректно это обрабатывает.
Значит проблема либо в RDT.os либо в COMCoeдинении.


tormozit
#5, ред. 02 февраля 2025 14:47

Убери
ФЗ.ОжидатьЗавершения();
Ты же не хочешь блокировать основной поток Турбоконфа, пока метод будет 60 секунд что то делать


bolsun
#6, ред. 02 февраля 2025 14:59

Убери
ФЗ.ОжидатьЗавершения();

Убрал, исключение обрабатывается


Для вставки изображения или файла, перетащите его в поле редактора или вставьте файл из буфера