try catch exception always returns null

11,577

Solution 1

It's impossible to have e with null value at that point. If you are debugging your app using Eclipse, it will show the e.toString() value at that point and the e.toString() is returning null.

Try another test, using this code:

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());
    }
}

Solution 2

I know this is an old question, but this happened with me as well, and it seems like the problem is with the debugger itself!
When I run my app from eclipse (ctrl + F11), it catches a proper exception (e != null).

Solution 3

I had this same problem.... I found it was the debugger like the other people had said. So what I did to debug is to just put the break point on the first line of the catch block, rather than right on the catch block. Seemed to work for me!

Solution 4

I had exactly the same strange problem inside an AsyncTask, while debugging on a real device (Galaxy Tab 2). (And yes, I got "e is really null!!!" doing the test suggested by @italo)

For me the problem mysteriously went away after unplugging the usb plug of the android device and connecting it again afterwards (and then running my app again).

Another suggestion, cleaning and rebuilding the project, as explained here didn't solve it for me (but maybe for somebody else).

Share:
11,577
mariozski
Author by

mariozski

Updated on June 13, 2022

Comments

  • mariozski
    mariozski almost 2 years

    I got problem with Android. I develop on device and have problem with catching exceptions. I'm running some code in AsyncTask and finally simplified it to:

    try
    {
        if (true)
            throw new Exception("ERROR"); 
    }      
    catch (Exception e)
    {    
        Log.e("e", "exception", e);
    }
    

    My problem is that 'e' variable is always null. Not sure what's happening actually. What's more it sometimes works, but I can't say when. I just get up from computer for few minutes come back and boom, it works. Doing coding few minutes and again it's null... There was one question on SO about 1 year ago but noone known answer. Maybe this time someone will have some idea.

    Null exception

    I think that it have something to do with AsyncTask as outside of it, I got exception catched properly... still don't have any clue why :( I found it only happens when debbuger is connected. When I take out cable from device it actually catches and exception isn't null anymore...

  • mariozski
    mariozski almost 13 years
    I think you don't undestand... variable e is null... you can't execute method on it as you'll get NullPointerException. Other than that 3rd parameter of Log.e is Throwable not String...
  • mariozski
    mariozski almost 13 years
    Well I tried but then can't compile project :) "The method e(String, String, Throwable) in the type Log is not applicable for the arguments (String, String, String)"
  • Italo Borssatto
    Italo Borssatto almost 13 years
    What I'm trying to tell is that the e is not null, but the e.toString() is returning null. I changed my answer. Try that to test if I'm right. I have already spent a lot of time with something like that in some MyBatis exceptions.
  • mariozski
    mariozski almost 13 years
    Hey, wasn't near pc. I'll try it tomorrow as I went home already :) But when I debug it 'e' var shows as null so I'm not sure if it'll actually help but will let you know tomorrow.
  • mariozski
    mariozski almost 13 years
    That doesn't help. I've made screenshot to show what I'm talking about. It's not about logging issue it's about that exception is null for some unknown reason. When I try to do any method on 'e' my app crash and got NullPointerException as one can expect.
  • mariozski
    mariozski almost 13 years
    Well.. it's really null as I've been using it's value to show message in other place and it didn't show up...
  • Italo Borssatto
    Italo Borssatto almost 13 years
    Unbelievable! I've never seen something like that and, if it's happening, it's a bug in Android. Is there any other information that you missed?
  • mariozski
    mariozski almost 13 years
    Actually I didn't see something like that either until now :) Tried 3 different devices, 2 windows instances and 2 different eclipse & sdk version... still same. I installed linux on virtual machine and it seems to be working there. Same code works for my co-workers aswell... I think that must be some kind of hardware problem but who knows...
  • Marcello de Sales
    Marcello de Sales about 11 years
    Got the same problem with Java 7 after re-throwing an exception.
  • user207421
    user207421 about 10 years
    Exactly. Of course it's the debugger. Can't be anything else. Exceptions do work.
  • JCricket
    JCricket about 9 years
    The weirdest thing, i've never seen it before. I tried all the recommendations on this page, a couple of times, but none worked. finally after doing them each a few times, this one finally succeeded and populating the exception for no apparent reason. Guess you have to be persistent
  • ceph3us
    ceph3us about 9 years
    the problem occurred also for me: stackoverflow.com/questions/8400711/…
  • John
    John over 8 years
    Had the same problem and this fixed it. This should be the accepted answer. And this bug should be reported to JetBrains IntelliJ.