問題タブ [try-with-resources]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - リソースを試すための8つのブランチ - jacocoのカバレッジは可能ですか?
リソースでtryを使用するコードがいくつかありますが、jacocoでは半分しかカバーされていません。すべてのソース コード行は緑色ですが、8 つのブランチのうち 4 つだけがカバーされていることを示す小さな黄色のシンボルが表示されます。
すべてのブランチが何であるか、およびそれらをカバーするコードを記述する方法を理解するのに苦労しています。3ヶ所投げ可能PipelineException
。これらはcreateStageList()
でprocessItem()
あり、暗黙のclose()
- 例外をスローしない、
- から例外をスローする
createStageList()
- から例外をスローする
processItem()
- から例外をスローする
close()
processItem()
andから例外をスローするclose()
他のケースは考えられませんが、まだ 8 つのうち 4 つしかカバーしていません。
なぜ8つのうち4つなのか、8つすべてのブランチにヒットする理由を誰かが説明できますか? 私はバイトコードの復号化/読み取り/解釈に熟練していませんが、おそらくあなたは... :)私はすでにhttps://github.com/jacoco/jacoco/issues/82を見ましたが、それも問題もありませんそれは非常に助けを参照しています(これはコンパイラが生成したブロックによるものであることに注意することを除いて)
うーん、これを書き終えたとき、上記で述べたようにテストされていない可能性があるケースについて考えました...正しく理解できたら回答を投稿します。この質問とその答えは、いずれにしても誰かを助けると確信しています。
編集:いいえ、見つかりませんでした。(catch ブロックによって処理されない) RuntimeExceptions をスローしても、それ以上の分岐はカバーされませんでした。
java - リソースの試行を強制する Java 7
AutoCloseable を実装するクラスがあり、Java 7 の新しい try-with-resources コンストラクトで使用することを目的としています。ただし、私のクラスのユーザーが try-with-resources を使用することを保証する方法がわかりません。これが起こらなければ、私のクラスはそれ自体を閉じることができず、悪いことが起こります. これを強制する方法はありますか - 言語構造またはそれ以外 - try-with-resources ブロックにいるかどうかを検出して、そうでない場合は例外をスローできるようにすることもできます (コンパイル時の構成が望ましいですが)。
ありがとう!
java-7 - Java 7 の try-with-resources を正しく使用していますか?
例外がスローされた場合、バッファリングされたリーダーとファイルリーダーが閉じられ、リソースが解放されることを期待しています。
catch
ただし、成功した閉鎖のための条項を設ける要件はありますか?
編集:
基本的に、Java 7 の上記のコードは、Java 6 の以下のコードと同等です。
java - try-with-resources ステートメントの目的は何ですか?
Java 7 には、 try-with-resources と呼ばれる新機能があります。それは何ですか?なぜ、どこでそれを使用する必要があり、どこでこの機能を利用できるのでしょうか?
このtry
ステートメントには、catch
私を混乱させるブロックがありません。
java - Java Try With Resources は代入で機能しませんか?
さて、私は簡単なクラスを書いていたので、try-catch-finally (それをするのは嫌い) メソッドの代わりにリソースを使用して try を使用しようとしましたが、「不正な型の開始」というエラーが発生し続けます。次に、Java チュートリアルのセクションに目を向けるとhttp://docs.oracle.com/javase/tutorial/essential/exceptions/tryResourceClose.html
、括弧内に新しい変数を割り当てることができることが示されました。何が起こっているのかわかりません。