Components.utils.reportError

Components.utils.reportError reports a JavaScript Error object to the Error Console, and returns. It is meant for use by extension developers who have exception handler blocks which want to "eat" an exception, but still want to report it to the console.

It must be called with one parameter, usually an object which was caught by an exception handler. If it is not a JavaScript error object, the parameter is converted to a string and reported as a new error. This means you can use Components.utils.reportError to report debugging messages to the Error Console, just like dump() can be used to print messages to the native console.

However you should use nsIConsoleService for logging, as it logs the messages with normal severity, unlike reportError.

function myDump(aMessage) {
  var consoleService = Components.classes["@mozilla.org/consoleservice;1"]
                                 .getService(Components.interfaces.nsIConsoleService);
  consoleService.logStringMessage("My component: " + aMessage);
}

Firefox 3 note

The Error Console will not display chrome errors by default. To show them, set the preference 'javascript.options.showInConsole' to true, or use nsConsoleService instead to show a message.

Firefox 4 note

The preference 'javascript.options.showInConsole' is set to true by default in this version.

Examples

Usage in an exception handler:

try {
  this.could.raise.an.exception;
} catch(e) {
  Components.utils.reportError(e); // report the error and continue execution
}

Sending debugging messages to the Error Console:

Components.utils.reportError("init() called");

Document Tags and Contributors

Last updated by: Wladimir_Palant,