問題タブ [try-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.
java - Try-finally ブロックは StackOverflowError を防ぎます
次の 2 つの方法を見てください。
実行bar()
すると明らかに が発生しますStackOverflowError
が、実行foo()
はそうではありません (プログラムは無期限に実行されているように見えます)。何故ですか?
delphi - いつ「try」ブロックを使用する必要があり、どの種類を使用する必要がありますか?
Delphi での例外処理に関する 2 つの非常に基本的な質問です。
1) いつTry
?私の推測では、Try
周りに句は必要ありません
- 割り当て、条件、ループなどの単純なコード
- VCL コンポーネントへのアクセス
しかし、私はする必要がありますTry
- データベース アクセス
- 例外が発生するかどうかわからないため、サードパーティのコンポーネント
- ヘルプ システムが表示するものはすべて、例外を発生させる可能性があります
何か見逃しましたか?
2) 試して... 最後に、または試して... を除いて... または両方? @RRUZが私の質問の1つにいくつかのコードで 答えるまで、私は何年もの間、これはどちらか/または選択であると考えていました
CoInitialize(nil);
質問: それ以外は、からまたはからの例外をキャッチするだけSetStaticIpAddress('Network card name','192.168.1.1','255.255.255.0');
ですか?
別の言い方をすれば、私のケーキを食べて、最後にトライアウトでベストトライをすることは可能ですか?
[更新] #2 への答えはイエスのようです。このコードは両方のダイアログ ボックスを表示します ...
vb.net - try/finallyブロックでスローする二重例外
コード例は次のとおりです。
私はそれがSecondExceptionをスローするだけで、FirstExceptionが消えることを理解しました。
FirstExceptionはSecondExceptionのInnerExceptionプロパティ内にあると思いましたが、そうではないようです。
FirstExceptionを表示する必要がないため、何もブロックされていません。この動作に興味を持っています。
すべてを上位レベルでキャッチしたときにSecondExceptionが最初にスローされたことを知る方法はありますか?
最初の例外が実際に2番目の例外によってオーバーライドされる場合、その理由は何ですか?
それは他のすべての言語で起こりますか?それは論理的ですか?
c# - メソッドから戻ると、オブジェクトは正しく破棄されますか?
たとえば、のusing
代わりにメソッドを使用するFileStream.Close();
と、クラスは正しく破棄されますか?
と同等です:
または:
c# - C#ユーザーがアプリケーションを終了した場合の動作を監視する
Webページのクリティカルセクションに次のコードを使用しています
ここで、lockObjはクラスの静的メンバーです。私の質問は、クリティカルセクションの実行中にユーザーがWebページまたはブラウザを閉じるとどうなるかということです。lockObjは、将来のページ要求のためにロックされたままですか?
python - 接続が閉じられたときにtry/finallyブロックを伴うトルネードジェネレータエンジンのメモリリーク
gen
この素晴らしいコードは、応答を読み取らずに接続が閉じられたときに、tornadoのモジュールのメモリリークを示しています。
そして今、簡単なテストクライアントを複数回実行します
これで、サーバーの出力に、メモリ使用量の増分が表示されます。
1に設定CHUNK_COUNT
すると、10KBのデータをOS接続バッファに書き込むことができ、「finished」および「finally」のテキストがコンソールに出力され、ジェネレータが完了しているため、メモリリークは発生しません。
しかし、奇妙な部分は、try / finalブロックを削除すると、問題がなくなることです。(CHUNK_COUNT
100に設定しても)
これはCPythonまたは竜巻のバグですか...?!
c# - なぜ最終的に処刑されないのですか?
プログラムが実行されている限り、finallyブロックは常に実行されると私は想定していました。ただし、このコンソールアプリでは、finallyブロックが実行されていないようです。
出力
注:例外がスローされたとき、ウィンドウからアプリケーションを終了するかどうか尋ねられたので、「はい」と答えました。
powershell-2.0 - $ ErrorActionPreference = "Stop"の場合、finallyブロックを順番に実行します
PowerShellスクリプトからの出力をログに記録するためにStart-Transcript
とを使用しています。Stop-Transcript
スクリプトはアプリケーションのインストールを実行しているため$ErrorActionPreference = "Stop"
、エラーが発生した場合は実行を停止するためにも使用しています。
これに伴う問題は、エラーが発生した場合、エラーがコンソールに出力される前にトランスクリプトが停止することです。これは、エラーがログファイルに含まれないことを意味します。try...finally
これは、次のように使用する場合でも当てはまります。
このスクリプトの実行によるコンソール出力は次のとおりです。
エラーメッセージがログに含まれるようにするにはどうすればよいですか?
python - finally句のPython例外は、以前の例外を食いつぶします
私の実際の場合、ctypesを介して使用される外部ライブラリに由来するため、何もできない句がSegmentation fault
発生します。finally
実際、スクリプトはとにかく行われるので、私はこのセグメンテーション違反を気にしません。
ただし、finallyのsegfaultは、それ以前に発生したすべての例外を最終的に食い尽くします。したがって、最初のデバッグNameError
はiDontExist
お尻の痛みになります。それはどこでも起こりません。現在、セグメンテーション違反の前から発生した例外を確認する方法はありません。
私はそれについて何ができると思いますか?外部ライブラリを修正することはオプションではありません。