try catch exception总是返回null

mar*_*ski 14 java null android exception

我遇到了Android的问题.我在设备上开发并且在捕获异常时遇到问题.我在AsyncTask中运行一些代码,最后将其简化为:

try
{
    if (true)
        throw new Exception("ERROR"); 
}      
catch (Exception e)
{    
    Log.e("e", "exception", e);
}
Run Code Online (Sandbox Code Playgroud)

我的问题是'e'变量始终为null.不确定实际发生了什么.它有时会起作用,但我不能说什么时候.我只是从电脑起床几分钟后回来繁荣,它的工作原理.做几分钟的编码再次它是空的...大约一年前有一个关于SO的问题,但没有人知道答案.也许这次有人会有一些想法.

空例外

我认为它与AsyncTask有关,因为它之外,我得到了正常的异常捕捉...仍然没有任何线索为什么:(我发现只有当debbuger连接时才会发生.当我从设备中取出电缆时它实际上捕获并且异常不再为null ...

Ita*_*tto 4

e此时不可能有空值。如果您使用 Eclipse 调试应用程序,它将显示e.toString()此时的值并且e.toString()返回null.

使用以下代码尝试另一个测试:

try {
    if (true) {
        throw new Exception("ERROR");
    } 
}      
catch (Exception e) {
    if (e == null) {
        Log.e("e", "e is really null!!!");
    }
    else {
        Log.e("e", "e is not null, toString is " + e + " and message is " + e.getMessage());
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 我认为您不明白...变量 e 为 null...您无法对其执行方法,因为您将得到 NullPointerException。除了 Log.e 的第三个参数是 Throwable 而不是 String... (4认同)
  • 重新抛出异常后,Java 7 也出现了同样的问题。 (2认同)