try、catchブロックを使用すると、例外がスローされた場合、catchの処理後にプログラムの実行が停止されます。しかし、例外があってもプログラムの実行を続ける必要があります。どのように私はそれを行う方法を助けることができますか?Continue try catch後もプログラム実行
答えて
私が正しく理解していれば、ここであなたが希望しているものです:
try
{
Statement1(); // <-- Exception is thrown in here
Statement2(); // <-- You want to go here after the catch block executes
}
catch
{
HandleException();
}
のtry/catchブロックは、そのように動作しません。あなたは次のように代わりに、あなたのコードを書き直す必要があります:
try
{
Statement1();
}
catch
{
}
try
{
Statement2();
}
catch
{
}
例外を処理し、catch
ブロックから例外(または別の例外)を再スローしない場合は、プログラムを再開する必要があります。
さらに、特定のタイプの例外をキャッチしている(IO例外を言います)が、try
ブロックのコードが別のタイプ(SQL例外など)を投げている場合、ブロックcatch
はそれをキャッチせず例外プログラムが終了するまでバブルアップします。
catch
ブロックではどういうことをしていますか?
あなたが
try
{
}
catch(MyException ex)
{
}
finally
{
// other code to be done
}
いますが、プログラムがクラッシュを言っている場合、あなたの機能を継続するために、最終的に使用できる機能(ないプログラム)について話している場合、引数なしのcach
はそれを処理できます。
キャッチされない例外が実行を終了します。
例外がキャッチされ、再スローされない場合、catch()句が実行され、finally()句があればそれが実行され、try/catch/finallyブロックの次の文で実行が続けられます。
例外がキャッチされて再スローされた場合、throw文までcatch()句が実行されます。 finally()節があればそれが実行されます)、例外が(再)スローされ、スタックの巻き戻しが継続されます。
finally()節が有効範囲外になるとfinally()節が実行され、ステートメントを使用して宣言された変数はDispose()が呼び出されてスコープ外になります。
元の例外がスローされた時点でコントロールが再開しないということは起こりません。 Main()メソッドのような高レベルで例外をキャッチしていて、元の障害点で実行を続けると思うように思えます。
これを実現するには、処理が文脈上で意味をなさない時点で例外をキャッチし、例外を処理した後、失敗した操作を再試行するか、問題を無視する必要があります。
例外処理をうまく行うことはむしろ困難です。したがって、例外処理のベストプラクティスはそれを処理しないという言い方です。例外はそれだけであるはずです:例外的です。あなたのコードはもちろん例外として例外をスローするべきではありません。また、検証技法やフロー制御オペレータとして例外を使用することは一般的ではありません。
はい、確かに。トリック質問:次の2つのtry/catchブロックの違いは何ですか? が {...} {...} キャッチを試みる {...} キャッチ(例外e) {...} とを試します –
- 1. try-catchブロックの後にtry-catchが再実行されない
- 2. TRY..CATCH Error_Line()....行
- 3. try-catchブロック内でも実行を中止した例外
- 4. Try Timer in Try Catch
- 5. ()try {} catch {}
- 6. try catch catch webdriverのカスタムウェイト
- 7. try/try catch関数でR
- 8. C#の - のtry-catch-最後にリターン
- 9. のPowershellのtry/catch /最後に
- 10. Scala DRYing try/catch
- 11. Try-catchリターンメソッド
- 12. JAVA try catch ArrayIndexOutOfBoundsException
- 13. C++プログラミングtry catch
- 14. VBA + Excel + Try Catch
- 15. Elixir Try Catch
- 16. try-catchブロックは
- 17. Javascript try catchステートメント
- 18. try&catch on supplyAsync
- 19. Foreach try catch
- 20. Try/Catchをキャッチしないとコードを実行
- 21. SQLはtry catchブロック内でストアドプロシージャを再実行します
- 22. try catchブロック内のコードへのアクセスと実行の問題
- 23. C#はtryとcatchの両方を実行します
- 24. IEの異なるウィンドウでtry/catchを実行する
- 25. 小数点以下のメソッドでtry/catchを実行するC#
- 26. try catchでnullチェックを行います
- 27. python map exception continueマッピング実行
- 28. Linuxシェルtry finally catch
- 29. try-catch-finally-return clarification
- 30. IE、FF try {} catch(){}バグ?
コードサンプルを用意して、最後に使用を調べることを検討してください。 –
「私はプログラムを続ける必要があります...」と言うと、正確にどこから続けるのですか?例外がスローされたステートメントから、またはtry/catchブロックの後、または...? –