Не следует перехватывать все исключения, а затем проверять сообщение об ошибке исключения. Вместо этого перехватывайте только те исключения, которые вы намереваетесь обработать - например, SocketTimeoutException .
catch (SocketTimeoutException ex)
{
// Do something...
}
С вашим текущим кодом вы можете ловить исключение другого типа, которого вы не ожидали. В настоящее время вы просто игнорируете это исключение, даже не регистрируя его. Это может очень затруднить отладку происходящего. Если у вас есть исключение, которое вы не можете обработать, вы должны либо сбросить его, либо записать его в журнал.
Я хочу поймать все исключения
Если вы действительно хотите сделать это, вы можете написать свой код следующим образом:
catch (SocketTimeoutException ex)
{
// Do something specific for SocketTimeoutException.
}
catch (Exception ex)
{
// Do something for all other types of exception.
}
Относительно вашей конкретной ошибки вы написали:
!a.equals(b) || !a.equals(c)
Это выражение всегда имеет значение true. Вы имели в виду:
!a.equals(b) && !a.equals(c)
или эквивалентно:
!(a.equals(b) || a.equals(c))
Обратите внимание, что, переписав свой код, как я предлагал выше, вы полностью избежите написания этого сложного логического выражения.