問題タブ [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.

0 投票する
4 に答える
912 参照

java - ファイルのクローズに失敗することはありますか?

in.close()私はこのコードを見て、なぜfinally block. の主なポイントtry-with resourcesは、それclosesresources正しいということです。

Java で try-with-resources を使用して、ファイルを開くことはできても閉じることができないという状況はありますか?

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

java-5 - java 5 のリソースで try を使用することはできますか?

Java 1.5 を使用するという制約があるプロジェクトに取り組んでいます。私の問題は、次のようなボイラープレートでいっぱいであることです:

Java 1.5 でこの問題を解決するにはどうすればよいですか? 私が達成しようとしているのは、Java 1.7 の try-with-resources などの構造を使用できるようにすることです。プログラムの実行中に何が起こってもステートメントを閉じたいだけですが、例のボイラープレートはありません。

0 投票する
0 に答える
601 参照

java - try 外部の try-with リソースのリソースを使用する

SocketChannelサーバーとクライアントの間でメッセージを送信するために使用しています。クライアントがサーバーに接続すると、サーバーはtry-with-resources try でInputStreamsandを開き、次のようにクライアントからメッセージを受信し、クライアントにメッセージ送信します。OutputStream

outトライ外にアクセスしたい。try には、メッセージが に到着したかどうかを繰り返しチェックする while ループが含まれておりin、正常に動作します。

次のようにして、グローバル変数を設定しようとしましたglobal_out

そして、次のように、この OutputStream に書き込もうとしました。

sendMessage(Object)私はwhen should_ceckisのみを呼び出し、 istrueかどうかをテストしますglobal_outnull、そうではありません。ただし、sendMessage(Object)一向に戻りません。そうglobal_out でない 場合は、何かに設定されているに違いないのに、 が終了nullする前にリソースを使用できないのはなぜですか?try-with-resources

これを回避する方法はありますか?

0 投票する
6 に答える
38917 参照

java - Try / Try-with-resources と Connection、Statement、および ResultSet のクローズ

私は最近、基本的な jdbc 接続スキームの処理方法について教授と話し合っています。2 つのクエリを実行したいとします。これが彼の提案です。

私はこのアプローチが好きではなく、それについて 2 つの質問があります。

rs.close()1.A) 「他のこと」を行う場所、または行内で例外がスローされたs2.close()場合s1、メソッドが終了したときに閉じられなかったと思います。私はそれについて正しいですか?

1.B) 教授は、明示的に ResultSet を閉じるように私に何度も要求します (Statement のドキュメントで ResultSet を閉じることが明確になっている場合でも)。Sun はそれを推奨していると彼女は言います。そうする理由はありますか?

これは、同じことの正しいコードだと私が思うものです:

2.A) このコードは正しいですか? (メソッドが終了したときにすべてが閉じられることが保証されていますか?)

2.B) これは非常に大きくて冗長です (さらにステートメントがある場合はさらに悪化します)。try-with-resources を使用せずにこれを行うためのより短くてエレガントな方法はありますか?

最後に、これは私が最も気に入っているコードです

3) このコードは正しいですか? 私の教授は Re​​sultSet の明示的なクローズがないため、この方法を好まないと思いますが、ドキュメントですべてがクローズされていることが明らかである限り、彼女はそれで問題ないと私に言いました。同様の例で公式ドキュメントへのリンクを提供できますか、またはドキュメントに基づいて、このコードに問題がないことを示していますか?

0 投票する
4 に答える
165 参照

java - JDBC リソースの正しい使用方法

Java 7 でもそのようなコードをよく見かけます。

ただし、仕様によると、接続が閉じられると、すべてのステートメントと結果セットが解放されます。

JDBC ドライバーが JDBC API のルールに従って動作しない可能性があると聞きましたが、古い方法の方が優れています。私の質問は、それについて意見を聞くことでした。コードは見栄えが良くなりますが、危険な場合はどうなりますか? 最も好ましい方法は、ここで try-with-resourcesを使用することです。それは十分に安全ですか?