Bonjour,
Je ne sais pas comment gérer proprement les exceptions dans un SwingWorker. Je vous dis comment je fais et je soumets à vos critiques.
Situation : j'exécute une tâche de fond qui throws ses Exceptions.
Si aucune exception n'est levée pendant l'excécution de la tâche de fond je veux que s'exécute Action1 dans l'EDT, Action2 sinon.
La méthode get() me renvoie les exceptions générées dans doInBackGround() donc je le met en début de la procédure done() avec un bloc try/catch
Ca ressemble à ça:
Est-ce là une utilisation correcte du SwingWorker et des Exceptions ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 class MonSwingWorker extends SwingWorker { @Override public Object doInBackground() throws Exception { // Execution d'une tâche qui fait remonter les exceptions. tache(); return null; } @Override protected void done() { try { // Appelle la méthode get() pour voir si une exception a été levée get(); // Si pas d'exception => Action1 Action1; } catch (Exception e) { //Exception thrown => Action2 Action 2; } } }
Merci d'avance pour vos éclaircissments.
Philippe.
Partager