Java Timer-Klasse: Timer-Tasks werden nicht mehr ausgeführt, wenn in einer der Tasks eine Exception ausgelöst wird

8
%Vor%

Ausgabe: run (Ausnahme wird ausgelöst)

Hier ist das Problem: Ich brauche eine Timer-Aufgabe, um nach bestimmten Bedingungen in der Datenbank (oder etwas anderem) zu suchen. Es funktionierte gut, aber manchmal die Datenbank (oder etwas anderes) gibt einige Fehler zurück, Ausnahme wird ausgelöst und der Timer stürzt ab, und dann wird kein einzelner Timer-Task erneut ausgeführt. Gibt es eine Timer-Implementierung, die nach der Exception weiterläuft in run() .

Ich kann

%Vor%

aber das scheint lahm.

Andere Alternative ist meine eigene Implementierung der Timer-Klasse schreiben, Schlucken von Ausnahmen der Run-Methode (die auch nicht richtig scheint).

    
fiction 05.01.2012, 13:08
quelle

2 Antworten

7

Verwenden Sie eine ScheduledExecutorService . Es spielt die gleiche Rolle wie Timer, behebt aber seine Schwächen (wie die, der Sie begegnen).

    
JB Nizet 05.01.2012, 13:12
quelle
0

Mit ExecutorService; können Sie sowohl die Kompilierzeit als auch Laufausnahmen behandeln.

Ausnahmen von Java-ExecutorService-Aufgaben behandeln
Wie wird die Ausnahmebehandlung in einem Callable

ausgeführt? %Vor%     
Kanagavelu Sugumar 12.05.2016 03:58
quelle

Tags und Links