aboutsummaryrefslogtreecommitdiff
path: root/files/ja/mozilla/tech/xpcom/language_bindings/components.lastresult/index.html
diff options
context:
space:
mode:
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.html57
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>