I think the current state of client side exception logging is as follows 
(using GWT 2.8.0-SNAPSHOT):

1) You do not inherit Logging.gwt.xml nor LoggingDisabled.gwt.xml:

     a) You do not install a GWT.setUncaughtExceptionHandler()

          => Exceptions escape to the browser and Chrome console shows them 
with clickable links on the right side pointing to the source mapped Java 
file and the correct line number. *However, if the java exception has a 
cause chain you will not see that cause chain at all in the console. That 
is really annoying because often you just see the stack of some GWT 
internal code because exception has been caught by GWT (e.g. 
UmbrellaException) which basically hides the real cause.*

     b) You do install a GWT.setUncaughtExceptionHandler() and use 
GWT.log() or java.util.Logger.log() to print the exception

          => GWT.log(): will print the exception message, followed by the 
exception cause chain and finally a native exception stack trace. The 
exception cause chain is a manually build String and logged as String so 
you can not click anything in that cause chain in the console. Since method 
names are obfuscated it doesn't help a lot. The only thing you can click is 
the native stack trace but that contains the stack to the location where 
you logged the exception and not the stack of the exception itself (usually 
points to the GWT.log() call in the UncaughtExeptionHandler)
          => Logger.getLogger().log(): Will not print out anything because 
for some weird reason Logger will always be rebound to LoggerImplNull. *This 
does look like a bug because LogImpl.gwt.xml indicates that Logger should 
work if superdevmode = on is given*. 


2.) You do inherit Logging.gwt.xml

If you do not install a UncaughtExceptionHandler yourself, then GWT will 
now install one for you which calls Logger to log exceptions. The situation 
is now similar to 1b) except that the output format looks a bit different. 
You see the exception message, the cause chain rendered as String (and thus 
not clickable) and a clickable, native stack trace that usually points to 
Impl -> Logger -> ConsoleLogHandler which does not give you anything.




So in general the situation kind of sucks right now. What I usually do 
right now is to tell Chrome to stop on any caught / uncaught exception and 
then click "continue" in the debugger until Chrome stops at the exception 
that I need to fix. That way I don't have to search through obfuscated 
method names.



-- J.

-- 
You received this message because you are subscribed to the Google Groups "GWT 
Contributors" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/google-web-toolkit-contributors/75f8ada8-05b1-451b-a548-10d837ed0c55%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to