-2

Есть блок try...catch, в котором отлавливается SocketException. В него приходит java.net.SocketException: Software caused connection abort. Можно ли определить, что exсeption был вызван именно ошибкой: Software caused connection abort, а не какой-то другой?

UPD stacktrace:

    W/System.err: java.net.SocketException: Software caused connection abort
W/System.err:     at java.net.SocketInputStream.socketRead0(Native Method)
        at java.net.SocketInputStream.read(SocketInputStream.java:151)
        at java.net.SocketInputStream.read(SocketInputStream.java:120)
        at java.net.SocketInputStream.read(SocketInputStream.java:206)
        at java.io.DataInputStream.readUnsignedShort(DataInputStream.java:337)
        at java.io.DataInputStream.readUTF(DataInputStream.java:589)
        at java.io.DataInputStream.readUTF(DataInputStream.java:564)
        at com.sapeg.Anttack.MainActivity_Large.read_runnable(MainActivity_Large.java:4584)
        at com.sapeg.Anttack.MainActivity_Large.lambda$null$3$MainActivity_Large(MainActivity_Large.java:2340)
        at com.sapeg.Anttack.-$$Lambda$MainActivity_Large$dtxulXooa1AoO5pdsIadSAYijBY.run(lambda)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:428)
        at java.util.concurrent.FutureTask.run(FutureTask.java:237)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
        at java.lang.Thread.run(Thread.java:776)
sapeg
  • 356
  • Начали минусовать. А причину узнать можно? Здесь конечно нет кода, но есть вполне конкретный вопрос. – sapeg Oct 25 '21 at 11:47
  • А покажите трассу стека, по ней, по моему, можно понять был ли в какой-то момент поймано исключение и перепослано – gil9red Oct 25 '21 at 12:08
  • Стектрэс я не сохранил. Сейчас повторно жду эту ошибку чтоб посмотреть возврат e.getCause() и прочее. – sapeg Oct 25 '21 at 12:36
  • Добавил стектрэс. – sapeg Oct 25 '21 at 13:08
  • https://ru.stackoverflow.com/a/546685/201445 ? – gil9red Oct 25 '21 at 13:15

1 Answers1

0

Можно использовать в блоке catch: e.getMessage(), которая и выдаст искомую ошибку - Software caused connection abort. Далее:

if(e.getMessage().equals("Software caused connection abort")) {TODO}
sapeg
  • 356
  • Конечно. Ведь локализованных сообщений не существует. –  Oct 25 '21 at 13:28
  • igor, можно и e.getLocalizedMessage(). В моём случае это даёт один и тот же результат. – sapeg Oct 25 '21 at 15:16
  • Перечитайте мой комментарий. Не торопитесь. Подумайте. –  Oct 25 '21 at 15:27