Невозможно перехватить исключение, блок перехвата никогда не достигается

У меня есть код, структурированный таким образом

public void generalMethod(){
   try{
     methodThatStartAsyncWebTask();
   catch(Exception e){
     offlineDataAlternativeMethod();
   }

}

метод

public void offlineDataAlternativeMethod(){
      try(
        loadArchivedFile();
      }
      catch(Exception e){
        reInitializeeData();
     }

}

Приложение аварийно завершает работу на строке loadArchivedFile();, которая завершается сбоем, потому что файл не найден, но странно то, что блок catch, который вызывает reInitializeeData();, не достигнут.

Почему никак не удается добраться до блока catch? Есть идеи?

Подобную проблему вижу впервые. Любое решение?


person AndreaF    schedule 12.09.2014    source источник
comment
не могли бы вы показать код loadArchivedFile? вы не показываете свой stackTrace. e.printStackTrace();   -  person Illegal Argument    schedule 12.09.2014
comment
трассировка стека слишком длинная, но просто исключение FileNotFound, сгенерированное loadArchivedFile(), не фиксируется, как ожидалось   -  person AndreaF    schedule 12.09.2014


Ответы (1)


Попробуй это

получение исключения "файл не найден"

person easywaru    schedule 12.09.2014
comment
попробуй это. stackoverflow.com/questions/8845534/ - person easywaru; 12.09.2014
comment
хорошо, это работает, спасибо... но почему, черт возьми, попытка поймать не работает? FileNotFoundException должен наследоваться от Exception, поэтому я не могу понять причину этой проблемы. - person AndreaF; 12.09.2014
comment
Возможно, класс, который вы использовали, предназначен только для Java, а не для Amdroid, тогда Android vertual Marchine вызывает ошибки времени выполнения, а затем виртуальная машина не работает. Это только моя мысль, я не знаю, почему еще не произошло - person easywaru; 12.09.2014