diff options
Diffstat (limited to 'files/ja/mozilla/tech/xpcom/language_bindings/components.lastresult/index.html')
-rw-r--r-- | files/ja/mozilla/tech/xpcom/language_bindings/components.lastresult/index.html | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/files/ja/mozilla/tech/xpcom/language_bindings/components.lastresult/index.html b/files/ja/mozilla/tech/xpcom/language_bindings/components.lastresult/index.html new file mode 100644 index 0000000000..d830cc301c --- /dev/null +++ b/files/ja/mozilla/tech/xpcom/language_bindings/components.lastresult/index.html @@ -0,0 +1,57 @@ +--- +title: Components.lastResult +slug: Mozilla/Tech/XPCOM/Language_Bindings/Components.lastResult +tags: + - 'XPCOM:Language Bindings' + - XPConnect +translation_of: Mozilla/Tech/XPCOM/Language_Bindings/Components.lastResult +--- +<p> +</p><p><code>Components.lastResult</code> は XPConnect を介した直前の <a href="ja/XPCOM">XPCOM</a> メソッド呼び出しの結果コードである数値コード <code>nsresult</code> を返します。 +</p> +<h2 id="はじめに"> はじめに </h2> +<p><code>Components.lastResult</code> は一般的に、「成功」コードを返す XPCOM メソッドの結果のテストにのみ役立ちます。というのは、失敗した結果コードは XPConnect が例外に変換して、呼び出し元の JavaScript メソッドへ投げるからです。ほとんどのインターフェースは 1 つの成功コード (<code>NS_OK</code>) だけを返すので、<code>Components.lastResult</code> はほとんど必要ありません。 +</p><p><code>Components.lastResult</code> が利用される場合は、対象の呼び出しの後テストのためにローカル変数に保存することが、複数のテストを <code>Components.lastResult</code> に対して行うよりも適当です。多くの「Components」プロパティとメソッドは XPConnect で実装されていて、それに続く <code>Components.lastResult</code> 呼び出しは対象とした呼び出しでなく「暗黙的な」 XPConnect 呼び出しの結果を返すかもしれないからです。 +</p> +<h2 id="実例"> 実例 </h2> +<p>In the following example, the local variable <code>i</code> contains the actual result returned by <code>bar()</code> (assuming that <code>bar()</code> is called via XPConnect), and <code>Components.lastResult</code> contains the success code returned by <code>bar()</code>. +</p> +<pre class="eval">// Given that foo.bar is a method that might return +// the success codes NS_OK, '5', and '6' OR some error code... +try +{ + var i = foo.bar(); + + switch (Components.lastResult) + { + case Components.results.NS_OK: + // NS_OK is good! + break; + case 5: + // do something with 5 here + break; + case 6: + // do something with 6 here + break; + default: + // this was a success code we did not expect. Bad component! + break; + } + // and so on.... +} +catch (e) +{ + // the call threw an exception or a native component returned + // a failure code! + if (e instanceof Components.interfaces.nsIXPCException) + { + // we might do something interesting here with the exception object + var rv = e.result; + } + else + { + // if we don't know how to handle it then rethrow + throw e; + } +} +</pre> |