J'ai une application qui utilise une connexion TCP.
Je souhaite que : lorsqu'il y a une erreur au niveau de la connexion, celle ci soit fermée.

Mais je me retrouve avec un code assez aberrant, avec des try catch imbriqués :

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
23
24
25
26
27
28
 
    public void run()
    {
        try
        {
            while (true) //boucle de réception
            {
                Action action = this.connection.receiveAction(); //réception
 
                if (action != null)
                {
                    this.action(action); //traitement de l'objet reçu
                }
            }
        }
        catch (IOException e) //si jamais ça plante
        {
            e.printStackTrace();
            try
            {
                this.connection.close(); //on ferme la connexion
            }
            catch (IOException e1)
            {
                e1.printStackTrace(); //plantage de la fermeture de connexion ???
            }
        }
    }
(mon objet "connection" encapsule une connexion TCP)

Connaissez vous un moyen élégant de traiter ce genre de cas ?

Merci !