問題タブ [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 投票する
2 に答える
1383 参照

c++ - C++ で {} finally{} を試行せずに安全にファイルを閉じる方法は?

次のようなクラスがあるとします。

何かが発生した場合、close() はそれを呼び出しません。正しいのは use try -finally ですが、C++ ではサポートされていません。

C++でどうすればできますか?

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

java - while ループでセマフォを安全に使用するにはどうすればよいですか?

次のコード フラグメントでは、セマフォを使用して特定のリソースへのアクセスを同期しています。

取得/解放サイクルを try/finally で囲むのが合理的かもしれません。while ループが存在する場合、どうすればこれを行うことができますか?

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

java - 最終ブロックについて

finallyの目的は、いくつかの命令またはクリーンアップ コードが実行されることを保証することですfinallyしかし、catch ブロックの後にコードを使用または配置することの実際の違いは何ですか。
つまり、使用する必要がある場合の例を教えてくださいfinally。そうしないと、コードがまったく実行されない可能性があります。

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

java - try-finally ブロックの単体テスト

getUrlメソッドのテストはどのように記述すればよいですか?

上記のコードurlsは文字列の配列です。

主な質問は、どのようにテストすればよいcase VALUE_3:ですか?

初めてテストするindex = 0が、その後の値はブロックindex内の別のものに変更されるため、同じユニットテストクラスのfinally新しい値で再度テストしたい.index

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

intersystems-cache - Caché ObjectScript の Try-Finally と同等

一般的な Try-Finally 例外クリーンアップ パターンと同等のセマンティクスを探しています。

コードが成功するか失敗するかに関係なく、クリーンアップ手順を実行する必要がありますが、クリーンアップ コードがエラーの報告と処理を妨げてはならないという考えです。まだ問題が発生しており、例外は引き続き伝播するはずです。

私はこのようなものを書きたいと思います:

ただし、ObjectScript の TRY...CATCH 構文は、FINALLY 句をサポートしていません。

特に、finally ブロックによって通常行われるこれらの両方が当てはまることが重要です。

  • クリーンアップ コードは、エラーが発生した場合とすべてが正常に実行された場合の両方で、実行が呼び出し元に返される前に常に実行されます。
  • エラーが発生した場合、コードの場所、コンテキスト、およびスタックを含む元のエラーが、呼び出しスタックを元の呼び出し元に伝達されます。クリーンアップ コードがデバッグを妨げないようにする必要があります。

通常の TRY...CATCH ブロックを単純に使用することはできません。なぜなら、CATCH は例外を食べて、正しいエラー コンテキストがチェーンに渡されないようにするからです。エラーコンテキストを台無しにすることなく、元の例外を再スローする方法があるのではないでしょうか?

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

java - ユーザー入力は、Java スレッド内では機能しません。私は何を間違っていますか?

わかりました、単純なチャット サーバーとクライアントを作成しようとしています。このプログラムはチャット サーバーです。実行中のスレッドが 2 つあります。最初のスレッドはすべてのクライアントを処理し、ServerSocket を使用して各新しいクライアントを新しいソケットにバインドし、2 番目のスレッドはユーザーが接続されたクライアントにメッセージを送信できるようにします。ただし、このスレッド内からユーザー入力を取得することはできません! ステートメント「String inputvar = br.readLine()」は実行されません! 私は何を間違っていますか?

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

c# - catch ブロックを持たない try ブロックを探す方法は?

エラー処理の標準的な方法がない大きな解決策があります。最近、try/finally ブロックを持つ多くのメソッドを見つけました。キャッチブロックなし。このようなもののすべての出現をどのように見つけましたか?