【问题标题】:Cannot catch exception, catch block is never reached无法捕获异常,永远不会到达捕获块
【发布时间】:2014-11-06 03:26:58
【问题描述】:

我有这样的代码结构

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

}

方法

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

}

应用程序在loadArchivedFile(); 行崩溃,因为找不到文件而失败,但奇怪的是没有到达调用reInitializeeData(); 的catch 块。

为什么无论如何都无法到达 catch 块?有什么想法吗?

这是第一次看到类似的问题。有什么解决办法吗?

【问题讨论】:

  • 你能展示一些 loadArchivedFile 的代码吗?你没有显示你的堆栈跟踪。 e.printStackTrace();
  • 堆栈跟踪太长了,只是 loadArchivedFile() 生成的 FileNotFound 异常没有按预期捕获

标签: android exception try-catch


【解决方案1】:

【讨论】:

  • 好的,这行得通,谢谢...但是为什么该死的 try catch 不起作用? FileNotFoundException 应该继承自 Exception,所以我无法理解这个问题的原因
  • 也许你使用的类只用于java而不是用于amdroid,然后android vertual marchine出现运行时错误,然后虚拟机死了。这只是我的想法,我不知道为什么还没有发生
猜你喜欢
  • 2021-09-21
  • 1970-01-01
  • 2010-09-28
  • 1970-01-01
  • 1970-01-01
  • 2010-10-29
  • 1970-01-01
相关资源
最近更新 更多