Bonjour

Par commodité, j'ai toujours placé mes try/catch de manière large, c'est à dire:

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
 
public void send   (Socket socket, byte[] buffer,int size) 
{
   socket.Send(Byte2.byte_ready(size,buffer));
  [...]
}
 
[...Autre classe2...]
try
{
   send(mySocket, myBuffer)
}
catch (SocketException E)
{
  [...]
}
Et je levais toujours les exceptions sur la méthode Socket.send.
Le but de faire comme ça de mettre untry qui englobe beaucoup de code (donc d'en mettre moins) et aussi de mettre dans le catch une fonction qui n'est que dans classe2



Cependant, j'ai remarqué que d'autres exception de Socket.Send (certaines le sont) ne sont pas levées, et je suis obligé de faire:


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
 
public void send   (Socket socket, byte[] buffer,int size) 
{
  try
  {
       socket.Send(Byte2.byte_ready(size,buffer));
  }
  catch (SocketException E)
  {
      [...]
  }
}
 
[...Autre classe2...]
try
{
   send(mySocket, myBuffer)
}
catch (SocketException E)
{
  [...]
}
Pourquoi le premier try dans le corps n'intercepte pas toutes les exceptions alors?