問題タブ [try-catch-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.
.net - Try ... Catch で Final を使用する理由
Finally
inTry .. Catch
は、try catch ブロックの実行の任意の部分の後に常に実行されることがわかります。
Finally
セクションをスキップして、try catch ブロックの外側で実行するのと何か違いはありますか?
例 1、Try ... Catch ... 最後に ... End Try
例 2、Try ... Catch ... End Try ... 最終的に外部で実行
java - try-catch-finally と try-catch の繰り返し
私はしばしば次のような状況に遭遇しました:-
これにはまだ try - catch ブロックが最後に必要です。
これを克服するためのベストプラクティスは何ですか?
c# - ステートメントと try-catch()-finally の繰り返しを使用していますか?
using(...) ステートメントは、try{} finally {} のシンタックス シュガーです。
しかし、次のような using ステートメントがあるとします。
ここで、このファイルを開くことで発生する可能性のある例外をキャッチしたいと考えています (環境によっては失敗する可能性があるという点で、これはかなりリスクの高いコードです)。コードがILにコンパイルされると、コードがJITされたときに繰り返しが削除されると思いますか?
ただし、ファイルを開くと発生する可能性のある例外をキャッチしたいと思います (したがって、using ステートメントのスコープ外で try-catch をラップする必要があります)。ブロックの中に。
これは、CLR がおそらく内部で行っていることに多くの繰り返しを追加しているように思えます。CLR は catch 句を追加しますか?
私の同僚は、using ステートメントが乱雑であると主張しました (しかし、これは、非常に迅速に変更する必要があり、コード ベースの他の部分にアクセスできなかったため、ハード コーディングしたために 1 行が少し長くなったためです)。この同僚は using ステートメントを使用していませんが、using ステートメントと try-finally/try-catch-finally の間に機能上の違いはありますか? 私は、WCF サービスで、finally を使用して値を返す (finally に関するもの) という、あまり知られていないコーナー ケースがあるケースを 1 つ見ました。解決策は、チェック ブロックを使用することでした。C# でこのようなものはありますか?
別の注意として、IDisposale を実装するすべての型は、管理されていないリソースの所有者ですか? 友人と話し合った結果、答えはノーでした。(私はまた、このフォーラムの使用セクションでいくつかのスレッドを読みました。いくつかの非常に優れた知識があります)。
java - Java の System.exit() は try/catch/finally ブロックでどのように動作しますか?
try/catch/finally ブロックでの戻りに伴う頭痛の種を認識しています - try または catch ブロックでの戻りが実行されたものであっても、finally での戻りが常にメソッドの戻りである場合。
ただし、System.exit() にも同じことが当てはまりますか? たとえば、try ブロックがあるとします。
例外がない場合、どの System.exit() が呼び出されますか? exit が return ステートメントの場合、System.exit(1) 行が常に (?) 呼び出されます。ただし、exit の動作が return と異なるかどうかはわかりません。
このコードは、不可能ではないにしても再現が非常に困難な極端なケースにあるため、単体テストを書くことはできません。数分の空き時間があれば、今日の後半に実験を実行しようと思いますが、とにかく興味があります.SOの誰かが答えを知っていて、前に、または実行できない場合に備えて提供できます.実験。
c# - プログラムフローをC#のfinallyブロックに明示的に渡す方法は?
Delphiでは、次のようなことができます:
別の方法では、メソッドのDoSomething
結果が false の場合、プログラム フローは finally ブロックに転送され、実行さDoSomething2
れDoSomething3
ません。
C#でそのような動作を実現するにはどうすればよいですか?
前もって感謝します。
Edit1: 以下の例は VS 2008 ではコンパイルされません
Edit2:申し訳ありませんが、断食して return ステートメントを忘れてしまいました。
Edit3:DoSomething1
テスト後、これを達成する最も簡単な方法は、結果が false
の場合に例外をスローすることです。独自の例外をスローし、特定のメッセージを書き込んで、finally 句に渡すことができます。
try-catch - Siebel で Catch ブロックを試す
一連のレコードをファイルに送信するスクリプトがあります。Try - Catch ブロックを使用して例外を処理しています。catch ブロックには、次のレコードへのポインターを持つコードがあります。しかし、これは実行されていません。基本的に、悪いレコードをスキップして次のレコードに移動したい。
ruby - Test::Unit::TestCase でティアダウンが実行されることを確認しますか?
私はTest::Unit::TestCase
いくつかの単体テストを書くために使用しています。現在、setup
ディスク上のいくつかのフィクスチャ ファイルとフォルダを移動および変更する機能があります。(これは現時点では必要悪です。) テストがクラッシュした場合、teardown
メソッドは呼び出されず、ファイルとフォルダーが邪魔になります。次にテストを実行すると、このようなフォルダーが既に存在する ( Errno::EEXIST
) と表示され、停止して残りのファイルを削除する必要があります。
どうすればensure
常にteardown
実行されますか? (他の言語ensure
と同じ考え方です。)finally
c# - キャッチを試してください-最後にIfステートメントで、どのように続けますか?
どうやってやるの ?