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); }
例
例外ハンドラでの使用:
try { this.could.raise.an.exception; } catch(e) { Components.utils.reportError(e); // エラーを送り、実行を続ける }
エラーコンソールへのデバッグメッセージの出力:
Components.utils.reportError("init() called");