Есть ли способ вызывать сценарии IronPython из WPF-приложения C # и ловить / ловить исключения, возникающие в выделенных потоках? - PullRequest
0 голосов
/ 25 января 2019

У меня есть приложение, которое позволяет пользователям выполнять произвольные сценарии IronPython, встроенные в приложение, аналогично примеру Turtle (http://www.voidspace.org.uk/ironpython/scripted_turtle.shtml). Механизм сценариев выполняется в блоке try catch и обрабатывает исключения, если только сценарии не запускаются выйти из нового потока или сделать что-то еще необычное, например загрузить свободный XAML-файл и реализовать обработчики за кнопками XAML и т. д. Исключения из такого «причудливого» кода в скриптах IronPython не обрабатываются C # try catch, приведенным выше, и приводят в моем приложении. Я хотел бы избежать этого. Есть ли способ либо запустить песочницу исполняющего движка IronPython, либо обработать этот сценарий с помощью некоторых общих методов обработки исключений C #? В моем случае не стоит использовать try, кроме как для самих сценариев python. До сих пор я пробовал подходы 1 (AppDomain.CurrentDomain.UnhandledException) и 3 (Application.Current.DispatcherUnhandledException) из соответствующего вопроса SO Глобальный обработчик исключений WPF , но без успеха (обработчик не получает вызывается при возникновении исключений).

...