問題タブ [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 - `Stream を取得するときに BufferedReader が閉じられないのはなぜですか`リソースを使って試してみますか?
Stream
が try-with-resources で使用されている場合は、リーダーを閉じる必要があります。
これを考えると:
...リーダーが閉じられていませんか??
このテストは失敗します:
java - リソースでtryを使用して、whileループをスレッドに入れるにはどうすればよいですか?
while
ループをスレッドに入れるにはどうすればよいですか?
while
ループをスレッドに入れるjava.net.SocketException: Socket closed
と、おそらく how が原因でスローされますtry with resources works
。しかし、この種の試行でスレッドを使用する方法がわかりません。
複数のスレッドが存在するtry
ため、1 つはローカルの InputStream を読み取るため、もう 1 つはリモートの OutputStream を読み取るためです。
java - Try-With-Resources が毎回新しいインスタンスを作成しない理由
TestNG を使用して単体テストを作成し、テスト データを db に保存しようとしています。以下のように、テストデータを作成するために DataProvider を使用しています。
そして、私のテストケースは、以下のように try-with-resources を使用しています:
最初のデータは正常に保存されました。ただし、try ブロックの PersistenceUtil は再度作成/初期化されないため、EntityTransaction は null になります。したがって、残りのデータに対して NPE 例外が発生します。try-with-resources ブロックで PersistenceUtil が再度初期化されないのはなぜですか。とにかく同じことを達成することはありますか?
java - AutoCloseable によってスローされた例外を処理 (または抑制) するための推奨される方法は何ですか?
Iterable
s を機密にする既存の API をいくつかアップグレードしていますAutoCloseable
。たとえば、次のようになります。
閉じることができる場合は、イテレータを閉じるメソッドが必要です。ここに私がこれまでに持っているものがあります:
JDK ドキュメントで がどのように参照されているかを考えるとThrowable.getSuppressed()
、このコードは次のようなことを行う必要がありますか?
stream - ストリーム チェーンのクローズとリソースでの試行
スタックオーバーフローに関する私の最初の質問、私は終了しました;)
ストリーム チェーンを使用する場合、close() 操作はチェーンのすべてのストリームを介して伝播する必要があるため、通常はチェーンの最後のストリームを閉じるのが適切な方法です。
try-with-resource ステートメントとストリーム チェーンを組み合わせる場合、どのような方法が良いと考えられますか?
a) try ステートメント内ですべてのストリームを作成します。
または b) チェーンの最後のメンバーのみ:
最終的には両方のバージョンが機能すると思いますが、a) は重複した close() 呼び出しを生成すると思いますね。
java - try-with-resource 内の手動クローズ
ソースコードが入手できない、文書化が不十分なサードパーティのライブラリを使用しているとしましょう。ライブラリのメソッドの 1 つは、InputStream
さまざまなデータをロードするために を受け入れます。
ドキュメントが不足しているため、メソッドがストリームの処理が完了したときにストリームを閉じるかどうかは明確ではありません。そのため、考えられる解決策の 1 つは、安全のために、try-with-resource で呼び出しをラップすることです。
残念ながら、Java の仕様では (私の知る限り)、try-with-resource 内でリソースが手動で閉じられた場合に何が起こるかについては言及されていません。誰かがたまたま知っていますか?
java - Eclipse からの Java try-with リソース警告
なぜ Eclipse の場合、これは try-with アームで管理されるのですか?
このケースを処理するためのより良い方法はありますか? または日食からのジャンク警告ですか?
このケースは無効です:
java - 私の AutoCloseable.close() 実装は潜在的な例外を検出できますか?
AutoCloseable
Java 7 の try-with-resources ステートメントで動作する を実装するときに、try ブロック内に例外があったかどうかを知りたいです。例えば:
これを説明するには:
さて、try-with-resources ステートメントが bytecodeにどのように変換されるかを理解すると、それは不可能だと思います。しかし、インストルメンテーション/リフレクション/文書化されていないコンパイラ機能を使用してRuntimeException
、内部から上記にアクセスできる(信頼できる!)トリックはありますAutoCloseable.close()
か?
注: 私は API 設計者であり、API コンシューマのリソースの試行コードを制御することはできません。したがって、実装はAutoCloseable
サイトで行う必要があります