X-Git-Url: http://git.ithinksw.org/extjs.git/blobdiff_plain/ee06f37b0f6f6d94cd05a6ffae556660f7c4a2bc..c930e9176a5a85509c5b0230e2bff5c22a591432:/src/core/Error.js?ds=sidebyside diff --git a/src/core/Error.js b/src/core/Error.js new file mode 100644 index 00000000..ff596972 --- /dev/null +++ b/src/core/Error.js @@ -0,0 +1,81 @@ +/*! + * Ext JS Library 3.0.0 + * Copyright(c) 2006-2009 Ext JS, LLC + * licensing@extjs.com + * http://www.extjs.com/license + */ +/** + * Framework-wide error-handler. Developers can override this method to provide + * custom exception-handling. Framework errors will often extend from the base + * Ext.Error class. + * @param {Object/Error} e The thrown exception object. + */ +Ext.handleError = function(e) { + throw e; +}; + +/** + * @class Ext.Error + * @extends Error + *

A base error class. Future implementations are intended to provide more + * robust error handling throughout the framework (in the debug build only) + * to check for common errors and problems. The messages issued by this class + * will aid error checking. Error checks will be automatically removed in the + * production build so that performance is not negatively impacted.

+ *

Some sample messages currently implemented:

+"DataProxy attempted to execute an API-action but found an undefined
+url / function. Please review your Proxy url/api-configuration."
+ * 
+"Could not locate your "root" property in your server response.
+Please review your JsonReader config to ensure the config-property
+"root" matches the property your server-response.  See the JsonReader
+docs for additional assistance."
+ * 
+ *

An example of the code used for generating error messages:


+try {
+    generateError({
+        foo: 'bar'
+    });
+}
+catch (e) {
+    console.error(e);
+}
+function generateError(data) {
+    throw new Ext.Error('foo-error', data);
+}
+ * 
+ * @param {String} message + */ +Ext.Error = function(message) { + // Try to read the message from Ext.Error.lang + this.message = (this.lang[message]) ? this.lang[message] : message; +} +Ext.Error.prototype = new Error(); +Ext.apply(Ext.Error.prototype, { + // protected. Extensions place their error-strings here. + lang: {}, + + name: 'Ext.Error', + /** + * getName + * @return {String} + */ + getName : function() { + return this.name; + }, + /** + * getMessage + * @return {String} + */ + getMessage : function() { + return this.message; + }, + /** + * toJson + * @return {String} + */ + toJson : function() { + return Ext.encode(this); + } +}); +