Is it a bad idea to use printStackTrace() for caugt Exceptions?
I believe this is what you need:
catch (Exception e) {
Log.e(TAG,Log.getStackTraceString(e));
}
Yes, it is a bad idea. You should instead use Android's built-in log class specifically designed for these purposes: http://developer.android.com/reference/android/util/Log.html
It gives you options to log debug messages, warnings, errors etc.
Logging errors with:
Log.e(TAG, "message", e)
where the message can be an explanation of what was being attempted when the exception was thrown
or simply Log.e(TAG, e)
if you do not wish to provide any message for context
You can then click on the log console at the bottom while running your code and easily search it using the TAG or log message type as a filter
Yes. printStackTrace()
is convenient but discouraged, especially on Android where it is visible through logcat
but gets logged at an unspecified level and without a proper message. Instead, the proper way to log an exception is...
Log.e(TAG, "Explanation of what was being attempted", e);
Note that the exception is used as a third parameter, not appended to the message parameter. Log
handles the details for you – printing your message (which gives the context of what you were trying to do in your code) and the Exception
's message, as well as its stack trace.