問題タブ [using-statement]

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 投票する
8 に答える
926 参照

c# - 'using'にcatchブロックがないのはなぜですか?

「使用する」のポイントは、オブジェクトのDisposeメソッドが呼び出されることを保証することであると理解しています。しかし、「using」ステートメント内の例外はどのように処理する必要がありますか?例外がある場合は、「using」ステートメントをtrycatchでラップする必要があります。例えば:


usingパラメータ内のオブジェクトの作成で作成された例外があるとしましょう

またはusingスコープ内の例外

すでにtrycatchで例外を処理する必要がある場合は、オブジェクトの破棄も処理する必要があるようです。この場合、「using」ステートメントはまったく役に立たないようです。「using」ステートメントで例外を適切に処理するにはどうすればよいですか?私が見逃しているこれへのより良いアプローチはありますか?

「using」キーワードの構文はもう少し甘くなります
か...これがあるといいでしょう:

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

visual-studio-2008 - 使い捨てクラスは、進行中の例外があるかどうかをどのように検出できますか?

IDisposableを実装するクラスがあります

次に、次の方法でクラスを使用するメソッドがあります。

コードがusing{...}境界を離れると、FooクラスのDisposeメソッドが呼び出されます。Disposeメソッドで、コードがブロックを使用して自発的に終了するのか、例外の結果として終了するのかをどのように検出できますか?

0 投票する
5 に答える
2655 参照

c# - .NET 例外が処理されているかどうかを判断する方法は?

Dispose()「using」ボディが正常に終了したか例外で終了したかによってメソッドが異なる処理を行う特別なクラスで「using」節を使用したい C# のコーディング パターンを調査しています。

私の理解では、CLR は現在処理中の例外を追跡し、それが "catch" ハンドラーによって消費されるまで追跡します。ただし、コードがアクセスできるように、この情報が何らかの方法で公開されているかどうかは完全には明らかではありません。そうであるかどうか、もしそうなら、アクセス方法を知っていますか?

例えば:

System.Transactions.TransactionScopeこれは、 の呼び出しによって成功/失敗が決定されるのではなく、本体が正常に終了x.Complete()したかどうかに基づいて決定されることを除いて、にほとんど似ています。using

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

vb.net - Using ステートメントと Lazy Initialized プロパティのエラー

以下のコードは、InvalidOperationException をスローします: ConnectionString プロパティが初期化されていません。Load メソッドの Connection.Open() を呼び出す行で例外がスローされます。using ステートメントの代わりに try-finally ステートメントを使用すると、すべてが正しく機能します。using ステートメントで例外が発生する理由を説明できる人はいますか?

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

c# - Dispose()の呼び出しと、オブジェクトが終了したときのスコープ/メソッドの終了

try/catch/finaly内部にブロックがあるメソッドがあります。tryブロック内で、次のように宣言SqlDataReaderします。

finallyブロック内で手動で破棄されるオブジェクトは、クラスレベルで設定されたオブジェクトです。IDisposableそれで、上記のように実装するメソッド内のオブジェクトは、SqlDataReader自動的に破棄されますか?whileループが実行された後、リーダーのコンテンツを取得するためにClose()呼び出されます(これは、呼び出しと同じである必要があります)。の呼び出しがない場合、メソッドが終了するか、オブジェクトがスコープ外になると、このオブジェクトは自動的に閉じられますか?aReaderDispose()Close()Close()

編集:私はusing声明を知っていますが、私を混乱させるシナリオがあります。

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

.net - datacontext を破棄すると、リーダーが閉じているときに Read を呼び出す無効な試行が発生します

私は MVC 2 アプリを構築しており、ストアド プロシージャで linq to sql を使用しています。

内部データ コンテキスト クラスと、アプリケーションを公開するパブリック クラスを持つデータ アクセス層を作成しました。私のパブリック クラスでは、datacontext クラスにアクセスするメソッドを公開し、linq を使用してデータを独自のオブジェクト モデル クラスに変換します。

私のパブリック クラスでは、次のパターンを使用してメソッドを公開します。

私の MVC アプリはモデル クラスからこのメソッドを呼び出し、aspx は結果を反復処理します。データ コンテキストの使用を using スコープ内にラップしているため、「datacontext により、Reader が閉じられているときに無効な Read の呼び出しが試行されました」というエラーが常に発生することがわかりました。using 句ですべてを scpope しなければ、問題なく動作します。どうしてこれなの?

これは必ずしもlinqまたはmvcのことではないと思います(ただし、確かにはわかりません)、using句により、すべてのオブジェクトが返される前にdisposeが呼び出されますかそれとも、列挙子がyieldの仕組みと同様に反復されているときにselect句が実行されているだけでしょうか?

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

c# - C#: HttpWebRequests/HttpWebResponses での "Using" ステートメント

Jon Skeetは、私のSOApiDotNetコード (プレアルファ Stack Overflow API の .NET ライブラリ) について (Twitter 経由で) コメントを残しました。

@ maximz2005ソースをすばやく閲覧しただけで気づいたことの1つは、WebResponsesを破棄していないことです。「使用」ステートメント FTW。

彼は、これらの Web セッションを「using」ステートメントでラップする必要があることを示しています。ただし、これについて質問があります。HttpWebRequest から始めて全体をラップする必要がありますか、それとも「using」ステートメントの外側で WebRequest を作成してから Response を内側にラップする必要がありますか? 違いは、前者では両方のオブジェクトが破棄されるということだと思いますが、これは正しいですか?

前もって感謝します。

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

vb.net - オペランドと XmlElement の使用に関するエラー

私のコードは次のようなものです:

0 投票する
12 に答える
89337 参照

java - Javaにはusingステートメントがありますか?

Javaには、休止状態でセッションを開くときに使用できるusingステートメントがありますか?

C# では次のようになります。

したがって、オブジェクトはスコープ外になり、自動的に閉じます。

0 投票する
5 に答える
3360 参照

c# - using(object obj = new Object()) とはどういう意味ですか?

このステートメントは C# で何を意味しますか?