Я рекомендую использовать snakefood для создания графических графов зависимостей проектов Python. Это обнаруживает зависимости достаточно приятно для непосредственного наблюдения областей для перефакторизации. Его использование довольно просто при чтении определенной документации.
, Конечно, можно опустить шаг создания графика и получить словарь зависимости в файле вместо этого.
Исключение, созданное в потоке, обычно не может быть перехвачено в другом потоке.
Лучше перехватить его в функции Go и явно передать в основной поток.
Однако , если вы просто хотите регистрировать все необработанные сообщения из всех потоков, вы можете использовать событие AppDomain.UnhandledException или эквивалентные события в классе Application, если вы разрабатываете приложение WinForms или WPF.
Какие другие альтернативы подходят в качестве хорошего решения ?.
Какое решение для ? Какую проблему вы пытаетесь решить?
Если вы используете BackgroundWorker , в отличие от Thread, у него есть событие RunWorkerCompleted , и в нем вы можете проверить параметр RunWorkerCompletedEventArgs для свойства Error . Обычно это используется в приложениях WinForms или WPF, поскольку в конструкторе Visual Studio имеется хорошая поддержка BackgroundWorker.
Вы также можете определить делегата для Go () и вызвать для него BeginInvoke (). Конечно, вам также понадобится EndInvoke ().
Кроме того, обычно не рекомендуется запускать случайные потоки. ThreadPool.QueueUserWorkItem, BackgroundWorker или делегаты asynch используют ThreadPool и рекомендуются.
Вы можете использовать событие AppDomain.UnhandledException