Java – try catch exception always returns null

androidexceptionjavanull

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…

Best Solution

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