Revision: 9557
Author: fre...@google.com
Date: Fri Jan 14 16:09:06 2011
Log: Edited wiki page WebModeExceptions through web user interface.
http://code.google.com/p/google-web-toolkit/source/detail?r=9557
Modified:
/wiki/WebModeExceptions.wiki
=======================================
--- /wiki/WebModeExceptions.wiki Tue Nov 30 10:28:21 2010
+++ /wiki/WebModeExceptions.wiki Fri Jan 14 16:09:06 2011
@@ -107,3 +107,52 @@
* The method `GWT.getPermutationStrongName()` and the associated
`$strongName` variable have been added to allow permutations to identify
themselves at runtime.
* `RemoteServiceServlet` also provides a `getPermutationStrongName()`
method, which provides the requesting client's permutation strong name for
the current RPC.
* A utility class `HttpThrowableReporter` has been provided to send
JSON-formatted representations via HTTP requests.
+
+
+= Example Production Mode stack traces without emulation =
+The amount of built-in support for native stack traces differs greatly by
browser. To demonstrate this, set an `UncaughtExceptionHandler` to examine
the exception thrown in Production Mode (compiled with `-style OBFUSCATED`)
by the following snippet:
+{{{
+ String s = null;
+ s.length();
+}}}
+
+== Sample results: Firefox 3.6.13 ==
+|| *Property* || *Value* ||
+|| Exception Class || `com.google.gwt.core.client.JavaScriptException` ||
+|| Message || `(TypeError): null has no properties` ||
+|| `lineNumber` || `657` ||
+|| `stack` ||
`aM()@http://127.0.0.1:8888/stackdump/71307A90B78B5C9E2B2ADEFF5EE31AF0.cache.html:657`<br>`ll([object
Array],[object
Array])@http://127.0.0.1:8888/stackdump/71307A90B78B5C9E2B2ADEFF5EE31AF0.cache.html:600`<br>`bl([object
Object])@http://127.0.0.1:8888/stackdump/71307A90B78B5C9E2B2ADEFF5EE31AF0.cache.html:475`<br>`ql()@http://127.0.0.1:8888/stackdump/71307A90B78B5C9E2B2ADEFF5EE31AF0.cache.html:654`<br>`hl([object
Object])@http://127.0.0.1:8888/stackdump/71307A90B78B5C9E2B2ADEFF5EE31AF0.cache.html:228`<br>`Rk(hl,[object
XPCCrossOriginWrapper],[object
Object])@http://127.0.0.1:8888/stackdump/71307A90B78B5C9E2B2ADEFF5EE31AF0.cache.html:612`<br>`([object
Object])@http://127.0.0.1:8888/stackdump/71307A90B78B5C9E2B2ADEFF5EE31AF0.cache.html:456`<br>`(3)@http://127.0.0.1:8888/stackdump/71307A90B78B5C9E2B2ADEFF5EE31AF0.cache.html:517`
||
+
+== Sample results: Safari 5.0.3 ==
+|| *Property* || *Value* ||
+|| Exception Class || `com.google.gwt.core.client.JavaScriptException` ||
+|| Message || `(TypeError): Result of expression 'null' [null] is not an
object.` ||
+|| `line` || `669` ||
+|| `sourceId` || `4665371256` ||
+|| `sourceURL` ||
`http://127.0.0.1:8888/stackdump/EB4A0B3EC0DB33BFD6A62912052DC4D6.cache.html`
||
+|| `expressionBeginOffset` || `9137` ||
+|| `expressionCaretOffset` || `9141` ||
+|| `expressionEndOffset` || `9144` ||
+|| Stack Trace || <no native stack trace information> ||
+
+== Sample results: Chrome 9 ==
+|| *Property* || *Value* ||
+|| Exception Class || `com.google.gwt.core.client.JavaScriptException` ||
+|| Message || `(TypeError): Cannot call method 'tb' of null` ||
+|| `type` || `non_object_property_call` ||
+|| `arguments` || `tb,` ||
+|| `stack` || `TypeError: Cannot call method 'tb' of null`<br>` at
Object.YM [as A]
(http://127.0.0.1:8888/stackdump/EB4A0B3EC0DB33BFD6A62912052DC4D6.cache.html:669:9138)`<br>`
at rl
(http://127.0.0.1:8888/stackdump/EB4A0B3EC0DB33BFD6A62912052DC4D6.cache.html:614:103)`<br>`
at hl
(http://127.0.0.1:8888/stackdump/EB4A0B3EC0DB33BFD6A62912052DC4D6.cache.html:487:60)`<br>`
at Object.wl [as R]
(http://127.0.0.1:8888/stackdump/EB4A0B3EC0DB33BFD6A62912052DC4D6.cache.html:666:19024)`<br>`
at nl
(http://127.0.0.1:8888/stackdump/EB4A0B3EC0DB33BFD6A62912052DC4D6.cache.html:236:25)`<br>`
at Xk
(http://127.0.0.1:8888/stackdump/EB4A0B3EC0DB33BFD6A62912052DC4D6.cache.html:623:61)`<br>`
at
http://127.0.0.1:8888/stackdump/EB4A0B3EC0DB33BFD6A62912052DC4D6.cache.html:472:45`<br>`
at
http://127.0.0.1:8888/stackdump/EB4A0B3EC0DB33BFD6A62912052DC4D6.cache.html:528:65`
||
+
+== Sample results: Internet Explorer 6/7/8 ==
+|| *Property* || *Value* ||
+|| Exception Class || `com.google.gwt.core.client.JavaScriptException` ||
+|| Message || `(TypeError): 'null' is null or not an object` ||
+|| `number` || `-2146823281` ||
+|| `description` || `'null' is null or not an object` ||
+|| Stack Trace || <no native stack trace information> ||
+
+== Sample results: Opera 11.0 ==
+|| *Property* || *Value* ||
+|| Exception Class || `com.google.gwt.core.client.JavaScriptException` ||
+|| Message || `(TypeError): Cannot convert 'null' to object` ||
+|| Stack Trace || <no native stack trace information> ||
--
http://groups.google.com/group/Google-Web-Toolkit-Contributors