Невозможно поймать исключение в Java - PullRequest
0 голосов
/ 18 декабря 2018

Сценарий:

Я использую проект для управления MPT с Java.

У меня есть фрагмент кода вроде:

try {
    originalfilename = m_allFiles[i].getOriginalFileName();
} catch (Exception e)  {
    System.out.println("Exception Caught");
}

Когда я получаю доступ к объектам из разных потоков, иногда эта инструкция выдает исключение, например be.derycke.pieter.com.COMException

Проблема:

Сообщение «Исключение поймано» никогда не печатается, и консоль печатает эту трассировку стека:

be.derycke.pieter.com.COMException: Failed to retrieve the properties (0x800700aa)
    at jmtp.PortableDevicePropertiesImplWin32.getValues(Native Method)
    at jmtp.PortableDeviceObjectImplWin32.retrieveStringValue(Unknown Source)
    at jmtp.PortableDeviceObjectImplWin32.getOriginalFileName(Unknown Source)
    at com.servifot.kiosco.MobileCableSearcher$MobileFolderSearcher.run(MobileCableSearcher.java:284)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)

Строка «MobileCableSearcher.java:284» - это то, что я имею в попытке.Так почему перехват не перехватывает исключение?

Дополнительная информация:

Объект, который я называю getOriginalFilename (), является PortableDeviceObject

Я пытался поймать Throwable , но проблема точно такая же.

Я пытался указать исключение с be.derycke.pieter.com.COMExceptionно я получаю эту ошибку: enter image description here

1 Ответ

0 голосов
/ 18 декабря 2018

Обнаружено исключение и сообщено в PortableDeviceObjectImplWin32.retrieveStringValue.

В этом случае вы получите null как результат getOriginalFileName.

...