問題タブ [autocloseable]

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.

0 投票する
2 に答える
824 参照

java - try-with-resources が BufferedReader from lines() を閉じないようにする方法 (ストリーム)?

これは、 a で終了したBufferedReaderときに a が閉じられないようにするために私が行っていることです:lines()try-with-resources

これは一般的なユーティリティであり、ファイルだけでなく、多くのリーダーで動作します..

Stream<String>を閉じても も閉じないように制御するより良い方法はありBufferedreaderますか?

以下のコメントに従って通常の を試すと、次のようtryになります。

それはより良いようです:)

0 投票する
2 に答える
925 参照

java - `Stream を取得するときに BufferedReader が閉じられないのはなぜですか`リソースを使って試してみますか?

Streamが try-with-resources で使用されている場合は、リーダーを閉じる必要があります。

これを考えると:

...リーダーが閉じられていませんか??

このテストは失敗します:

0 投票する
1 に答える
1257 参照

exception-handling - let バインディングまたは body で発生する例外の処理方法

let同じfinallyブロックを使用して、バインディングまたはステートメントの本体で発生する可能性のある例外をどのように処理しますか? 元:

(create-connections)または失敗した場合(dostuff)、私はしたいです(close connections)。いくつかのオプション:

オプション1:

connectionsfinally ブロックの範囲内にないため、これは明らかに機能しません。

オプション 2:

このオプションは、(destuff)コールで発生した例外のみを捕捉し、 で発生した例外は捕捉しません(create-connections)

オプション 3:

connectionslet バインディング内の finally ステートメントのスコープ外であるため、これも機能しません。

それで、これに対処する最善の方法は何ですか?

0 投票する
2 に答える
2089 参照

java - 私の AutoCloseable.close() 実装は潜在的な例外を検出できますか?

AutoCloseableJava 7 の try-with-resources ステートメントで動作する を実装するときに、try ブロック内に例外があったかどうかを知りたいです。例えば:

これを説明するには:

さて、try-with-resources ステートメントが bytecodeにどのように変換されるかを理解すると、それは不可能だと思います。しかし、インストルメンテーション/リフレクション/文書化されていないコンパイラ機能を使用してRuntimeException、内部から上記にアクセスできる(信頼できる!)トリックはありますAutoCloseable.close()か?

注: 私は API 設計者であり、API コンシューマのリソースの試行コードを制御することはできません。したがって、実装はAutoCloseableサイトで行う必要があります

0 投票する
3 に答える
1516 参照

java - AutoCloseable を実装する場合、close() を呼び出すヘルパー?

これを行うJDKまたは共通ライブラリにヘルパーメソッドはありますか:

close()該当する場合は、オブジェクトを呼び出すためのワンライナーです。

リソースの試行については知っていますが、この状況には当てはまりません。close()そして、メソッドを実装しているすべてのクラスがAutoCloseable. しかし、私は上記を何度も書いているようです..

0 投票する
1 に答える
1475 参照

java - 工場で作成されたインスタンスの AutoCloseable "リソース リーク" 警告?

Eclipse for AutoCloseables で表示されるこれらの「リソース リーク」警告は、命の恩人のようです。

ただし、工場で作成されたインスタンスでそれらを機能させるにはどうすればよいですか?

例(a動作しますが、b動作しません):

貼り付けることができる注釈newResource()や、所有権の変更をコンパイラ (または Eclipse ですか?) に知らせるためにできることはありますか?