Components.utils.reportError

Components.utils.reportError は、エラーコンソールに JavaScript の Error オブジェクトを送り、プログラムの実行に戻ります。例外を「食べて」おきながらも、例外をコンソールに送りたい例外処理ブロックで用います。

これは必ずパラメータを 1 つ用いて呼び出します。通常、このパラメータは例外ハンドラが受け取ったオブジェクトです。それが JavaScript のエラーオブジェクトでなければ、パラメータは文字列に変換され、新しくエラーとして送られます。つまり、Components.utils.reportError を用いてデバッグメッセージをエラーコンソールに送ることができるということです。dump() を用いるとネイティブコンソールにメッセージを出力できるのと同じようなものです。

しかしながらログをとるには nsIConsoleService を使用すべきです。これは reportError とは異なり、メッセージを通常の深刻度で記録するためです。

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

Firefox 3: エラーコンソールにはデフォルトではクロームエラーが表示されません。それらを表示するには、 'javascript.options.showInConsole' の設定を true に設定するか、代わりに nsConsoleService を使用してメッセージを表示します。

Firefox 4: このバージョンでは、デフォルトで 'javascript.options.showInConsole' の設定が true に設定されています。

例外ハンドラでの使用:

try {
  this.could.raise.an.exception;
} catch(e) {
  Components.utils.reportError(e); // エラーを送り、実行を続ける
}

エラーコンソールへのデバッグメッセージの出力:

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

ドキュメントのタグと貢献者

このページの貢献者: silverskyvicto, Marsf, Mgjbot, electrolysis, Fumi
最終更新者: silverskyvicto,