Components.utils.reportError

  • Revision slug: Components.utils.reportError
  • Revision title: Components.utils.reportError
  • Revision id: 94969
  • Created:
  • Creator: Nickolay
  • Is current revision? No
  • Comment

Revision Content

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

It must be called with one param, 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 JavaScript 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);
}

Examples

Usage in an exception handler:

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

Printing debugging messages to the JavaScript Console:

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

Revision Source

<p>
</p><p><code>Components.utils.reportError</code> reports a JavaScript Error object to the JavaScript console, and returns. It is meant for use in exception handler blocks which want to "eat" an exception, but still want to report it to the console.
</p><p>It must be called with one param, 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 <code>Components.utils.reportError</code> to report debugging messages to the JavaScript Console, just like <a href="en/DOM/window.dump">dump()</a> can be used to print messages to the native console.
</p><p>However you should use <a href="en/NsIConsoleService">nsIConsoleService</a> for logging, as it logs the messages with normal severity, unlike <code>reportError</code>.
</p>
<pre class="eval">function myDump(aMessage) {
  var consoleService = Components.classes["@mozilla.org/consoleservice;1"]
                                 .getService(Components.interfaces.nsIConsoleService);
  consoleService.logStringMessage("My component: " + aMessage);
}
</pre>
<h3 name="Examples"> Examples </h3>
<p>Usage in an exception handler:
</p>
<pre class="eval">try {
  this.could.raise.an.exception;
} catch(e) {
  Components.utils.reportError(e); // report the error and continue execution
}
</pre>
<p>Printing debugging messages to the JavaScript Console:
</p>
<pre class="eval">Components.utils.reportError("init() called");
</pre>
Revert to this revision