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

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

java - Try-finally ブロックは StackOverflowError を防ぎます

次の 2 つの方法を見てください。


実行bar()すると明らかに が発生しますStackOverflowErrorが、実行foo()はそうではありません (プログラムは無期限に実行されているように見えます)。何故ですか?

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

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 への答えはイエスのようです。このコードは両方のダイアログ ボックスを表示します ...

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

vb.net - try/finallyブロックでスローする二重例外

コード例は次のとおりです。

私はそれがSecondExceptionをスローするだけで、FirstExceptionが消えることを理解しました。

FirstExceptionはSecondExceptionのInnerExceptionプロパティ内にあると思いましたが、そうではないようです。

FirstExceptionを表示する必要がないため、何もブロックされていません。この動作に興味を持っています。

  • すべてを上位レベルでキャッチしたときにSecondExceptionが最初にスローされたことを知る方法はありますか?

  • 最初の例外が実際に2番目の例外によってオーバーライドされる場合、その理由は何ですか?

  • それは他のすべての言語で起こりますか?それは論理的ですか?

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

c# - メソッドから戻ると、オブジェクトは正しく破棄されますか?

たとえば、のusing代わりにメソッドを使用するFileStream.Close();と、クラスは正しく破棄されますか?

と同等です:

または:

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

c# - C#ユーザーがアプリケーションを終了した場合の動作を監視する

Webページのクリティカルセクションに次のコードを使用しています

ここで、lockObjはクラスの静的メンバーです。私の質問は、クリティカルセクションの実行中にユーザーがWebページまたはブラウザを閉じるとどうなるかということです。lockObjは、将来のページ要求のためにロックされたままですか?

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

python - 接続が閉じられたときにtry/finallyブロックを伴うトルネードジェネレータエンジンのメモリリーク

genこの素晴らしいコードは、応答を読み取らずに接続が閉じられたときに、tornadoのモジュールのメモリリークを示しています。

そして今、簡単なテストクライアントを複数回実行します

これで、サーバーの出力に、メモリ使用量の増分が表示されます。

1に設定CHUNK_COUNTすると、10KBのデータをOS接続バッファに書き込むことができ、「finished」および「finally」のテキストがコンソールに出力され、ジェネレータが完了しているため、メモリリークは発生しません。

しかし、奇妙な部分は、try / finalブロックを削除すると、問題がなくなることです。(CHUNK_COUNT100に設定しても)

これはCPythonまたは竜巻のバグですか...?!

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

c# - なぜ最終的に処刑されないのですか?

プログラムが実行されている限り、finallyブロックは常に実行されると私は想定していました。ただし、このコンソールアプリでは、finallyブロックが実行されていないようです。

出力

結果

注:例外がスローされたとき、ウィンドウからアプリケーションを終了するかどうか尋ねられたので、「はい」と答えました。

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

powershell-2.0 - $ ErrorActionPreference = "Stop"の場合、finallyブロックを順番に実行します

PowerShellスクリプトからの出力をログに記録するためにStart-Transcriptとを使用しています。Stop-Transcript

スクリプトはアプリケーションのインストールを実行しているため$ErrorActionPreference = "Stop"、エラーが発生した場合は実行を停止するためにも使用しています。

これに伴う問題は、エラーが発生した場合、エラーがコンソールに出力される前にトランスクリプトが停止することです。これは、エラーがログファイルに含まれないことを意味します。try...finallyこれは、次のように使用する場合でも当てはまります。

このスクリプトの実行によるコンソール出力は次のとおりです。

エラーメッセージがログに含まれるようにするにはどうすればよいですか?

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

python - finally句のPython例外は、以前の例外を食いつぶします

私の実際の場合、ctypesを介して使用される外部ライブラリに由来するため、何もできない句がSegmentation fault発生します。finally実際、スクリプトはとにかく行われるので、私はこのセグメンテーション違反を気にしません。

ただし、finallyのsegfaultは、それ以前に発生したすべての例外を最終的に食い尽くします。したがって、最初のデバッグNameErroriDontExistお尻の痛みになります。それはどこでも起こりません。現在、セグメンテーション違反の前から発生した例外を確認する方法はありません。

私はそれについて何ができると思いますか?外部ライブラリを修正することはオプションではありません。