問題タブ [finally]
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.
c# - try/catch/finally ブロックで使用される変数をどのように初期化すればよいですか?
try/catch/finally ブロックを使用している場合、変数をどこでどのように初期化すればよいですか? たとえば、 FileStream を使用しようとしているとします。ストリームの作成中または使用中にスローされた例外をキャッチしたいと考えています。次に、問題があったかどうかに関係なく、作成されたストリームが閉じていることを確認したいと思います。
だから私はこのようなことをします:
ただし、これにより、finally ブロックでエラーが発生しますunassigned local variable fs
。それでも、の宣言を変更fs
するSystem.IO.FileStream fs = null
と機能します。
fs
明示的に nullに設定する必要があるのはなぜですか? また、try ブロックで宣言しようとしましたが、finally ブロックfs
でエラーが発生します。The name fs does not exsist in the current context
ところで: Using ブロックを使用できることはわかっていますが、私の質問のポイントは、try/catch/finally ブロックの正しい使用法を理解することです。
.net - ThreadInterruptedException を適切に処理するには?
メソッドthreadMethodはSystem.Threading.Threadを介して実行されます。スレッドはいつでも中断される可能性があるため、例外ThreadInterruptedExceptionが finally ブロックでスローされる可能性がありますよね? ブロックを最後に try-catch で再度囲む必要がありますか?
ありがとう!
.net - コードが例外ハンドラから呼び出されたかどうかを判断する (ステートメントを使用)?
ちょっとばかげたことをしたい。オブジェクトのDispose()
メソッドで、オブジェクトのデバッグ トレースを出力して、オブジェクトが生きている間に発生したすべてのイベントを通知したいと考えています。
Dispose()
しかし、これには時間とお金がかかるため、例外がスローされたために が呼び出された場合にのみ実行したいと考えています。
だから私はしたいです
.NET には、クエリできる exceptionIsCurrentlyRaised プロパティがありますか?
java - なぜfinallyブロックを使用するのですか?
私の知る限り、次のコードスニペットはどちらも同じ目的を果たします。なぜfinally
ブロックがあるのですか?
コードA:
コードB:
c# - finally doesn't seem to execute in C# console application while using F5
The finally block does not seem to execute when pressing F5 in VS2008. I am using this code in Console Application.
java - try\finally ブロックで finally が実行されない場合はありますか?
私はオブジェクト指向プログラミングのテストのために勉強していますが、次のコードを考慮すると、何か問題があるかどうか疑問に思っていました:
finally
ブロックは実行されませんか?
c# - リソースが確実に破棄されるように、Marshal.FreeHGlobal を finally ブロックに配置する必要がありますか?
次のコードブロックがあります。
ブロックを try でラップし、FreeHGlobal コマンドを finally ブロックに配置する必要があります。(中間コマンドが例外をスローした場合)。
この場合、最終的にメモリリークを防ぐのは理にかなっているようですが、オンラインで見つけた例から、最終的には使用されていません。いずれにせよ、リソースは自動的に破棄される可能性があります (管理されていない場合でも)。
python - try-exceptブロックでpython "with"ステートメントを使用する
これは、python の "with" ステートメントを try-except ブロックと組み合わせて使用する正しい方法ですか?:
もしそうなら、物事を行う古い方法を考慮してください:
ここでの "with" ステートメントの主な利点は、3 行のコードを削除できることですか? この使用例については、私には説得力がないように思えます(ただし、「with」ステートメントには他の用途があることは理解しています)。
編集: 上記の 2 つのコード ブロックの機能は同じですか?
EDIT2:最初のいくつかの回答は、「with」を使用する利点について一般的に語っていますが、ここではわずかな利点のようです。私たちは皆、何年も f.close() を明示的に呼び出してきました (またはそうすべきでした)。ずさんなコーダーが「with」を使用することで恩恵を受けるという利点があると思います。
c# - 最後に:どのような場合でも呼び出されることが保証されていますか
finally
呼び出されないが、アプリケーションがまだ実行されている可能性はわずかでもありますか?
そこでセマフォを解放しています
それらのいくつかを失うことを恐れています。
java - ブロックキャッチでの損失例外
私はこのコードを実行します:
結果:
try:1
catch:2
finally:3
スレッド"main"の例外java.lang.NullPointerExceptionat user.main(User.java:17)
ブロックキャッチ内-ArrayIndexOutOfBoundsExceptionですが、この例外が失われるのはなぜですか?