Не може да се улови изключение, блокът за улавяне никога не се достига

Имам код, структуриран по този начин

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
добре, това работи, благодаря... но защо, по дяволите, опитът с catch не работи? FileNotFoundException трябва да наследи от Exception, така че не мога да разбера причината за този проблем - person AndreaF; 12.09.2014
comment
Може би класът, който сте използвали, е само за Java, а не за amdroid, тогава Android vertual marchine възниква грешки по време на изпълнение, след което виртуалната машина е мъртва. Това е само моя мисъл, не знам защо все още не се е случило - person easywaru; 12.09.2014