Вы не должны улавливать все исключения и затем проверять сообщение об ошибке исключения. Вместо этого поймайте только те исключения, которые вы собираетесь обрабатывать, например, 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))
Обратите внимание, что переписав код, как я предложил выше вы полностью избежать того, чтобы написать эту сложную логическое выражение.
Примечание: Можно также добавить блок еще, что [rethrows исключение] (HTTP: // StackOverflow.com/questions/1097527/rethrowing-exceptions-in-java), но это должно быть последним средством, если невозможно предотвратить ловить только те исключения, которые вам нужно поймать –
Я хочу поймать все исключения (даже те, что я забыл) thats почему я оставил этот код, поскольку он находится на очень далекой альфа-стадии, и я не знаю, что может произойти. Я пытаюсь игнорировать SocketTimeOutException и другие .. все же я хочу полную поддержку любых пропущенных исключений – SSpoke
SSpoke, если это на ранних этапах тестирования, вы не должны вообще перехватывать какие-либо исключения, так как вы захотите увидеть все возможные fail point – Woot4Moo