swing uncaughtexceptionhandler

Próbuję zbudować ogólny program obsługi wyjątków dla aplikacji swing, jak opisano tutaj:http://www.javaspecialists.eu/archive/Issue081.html

Pracuję w jythonie (składnia pythona jest kompilowana do java i uruchamiana). Mój kod wygląda mniej więcej tak (zaktualizowany):

def launcher(func):
    class launcherThread(Runnable):
        def __init__(self):
            super(launcherThread, self).__init__()

        def run(self):
            func()

    #trying to get the name which can be used to instantiate this in java
    cls = ExceptionGroup().getClass()
    fullName = cls.__module__ + '.' + cls.__name__

    System.setProperty("sun.awt.exception.handler", fullName)
    Thread(ExceptionGroup(), launcherThread(), 'Cross ExceptionHandlerThread').start()

class ExceptionGroup(ThreadGroup):
    def __init__(self):
         super(ExceptionGroup, self).__init__("HardenedGroup")

    def uncaughtException(self, thread, exception):
        #make a fancy dialog displaying str(exception)

Jeśli go przetestuję, działa dobrze, jednak w środowisku produkcyjnym zawodzi. Do testowania uruchamiam swój program w Eclipse (PyDev), środowisko produkcyjne to aplikacja napisana w języku Java, która ma wbudowaną konsolę Jython. Aplikacja obsługuje dodawanie niestandardowych pozycji menu i umieszczanie na nich skryptów jython.

Główną różnicą, jaką widzę między testowaniem a środowiskiem produkcyjnym, jest to, że w środowisku produkcyjnym wątki wahadłowe są już uruchomione (aplikacja innej firmy wykorzystuje ruch wahadłowy). Czy to powoduje mojeThreadGroup ustawienie nie powiodło się, czy jest inny powód, dla którego to nie działa?

Jak mogę uzyskać wątki Involved (wyjątki są generowane jako wynik działania buttonActions), aby sprawdzić ich procedury obsługi defaultException? Jeśli (jak się obawiam) powinno się okazać, że strona trzecia zainstalowała swój własny program obsługi (wszystkie wyjątki są zapisywane w pliku dziennika). Jak mogę utworzyć nowy huśtawkowy wątek roboczy? (Nie chcę jednak łapać wyjątków utworzonych przez aplikację hosta)

Podsumowanie pytania: 1. Jak mogę sprawdzić, które wątki są uruchomione dla funkcjifunc przeszedł dolauncher funkcja i zobaczyć ich nieprzechwycony program obsługi wyjątków? 2. Czy mogę wymusić oddzielny dyspozytor huśtawki dla mojej części gui i głównej części aplikacji? (Jeśli wyjdęOcClos na ramce mojego dodatku, aplikacja innej firmy zostanie zamknięta)?

Aktualizacja: Rozważając odpowiedź odlbalazscs Próbuję użyćsun.awt.exception.handler ale nie ma żadnego efektu, wyjątki nadal trafiają do pliku dziennika (zachowanie dfeault aplikacji). Czy używam go dobrze? (s.s .: Jestem na Java 1.6)

questionAnswers(1)

yourAnswerToTheQuestion