プログラムを実行しているとします。
そしてそれは「THROW」ステートメントを満たしています...何が起こりますか? プログラムは停止しますか?続きますか?
そして、「FINALLY」とは何ですか?
簡単な言葉での説明をお願いします
プログラムを実行しているとします。
そしてそれは「THROW」ステートメントを満たしています...何が起こりますか? プログラムは停止しますか?続きますか?
そして、「FINALLY」とは何ですか?
簡単な言葉での説明をお願いします
ここで多くの情報を見つけることができます:
http://msdn.microsoft.com/en-us/library/ms173160(v=vs.80).aspx
例外には次のプロパティがあります。
- アプリケーションでゼロ除算やメモリ不足の警告などの例外的な状況が発生すると、例外が生成されます。
- 例外をスローする可能性のあるステートメントを try ブロックで囲みます。
- try ブロック内で例外が発生すると、制御の流れは、関連する例外ハンドラー (存在する場合) に即座にジャンプします。
- 特定の例外の例外ハンドラが存在しない場合、プログラムは実行を停止し、エラー メッセージが表示されます。
- catch ブロックで例外変数が定義されている場合は、それを使用して、発生した例外の種類に関する詳細情報を取得できます。
- 例外が発生する可能性のあるアクションは、try キーワードを使用して実行されます。
- 例外ハンドラは、例外が発生したときに実行されるコードのブロックです。C# では、catch キーワードを使用して例外ハンドラーを定義します。
- 例外は、throw キーワードを使用してプログラムによって明示的に生成できます。
- 例外オブジェクトには、呼び出しスタックの状態やエラーのテキスト説明など、エラーに関する詳細情報が含まれています。
- 例外がスローされた場合でも、finally ブロック内のコードが実行されるため、プログラムはリソースを解放できます。
スローについては、MSDN のドキュメントを参照してください: http://msdn.microsoft.com/en-us/library/1ah5wsex.aspx
簡単に言えば、throw
例外を発生させます。try-catch ブロックにいる場合はキャッチされますが、そうでない場合はプログラムがクラッシュする可能性があります。
スローされた(およびキャッチされた)例外があったかどうかに関係なく、ブロックはブロックのfinally
後に実行されます。try-catch
throw ステートメントは、プログラムの実行中に異常な状況 (例外) が発生したことを通知するために使用されます。通常、throw ステートメントは、try-catch または try-finally ステートメントと共に使用されます。例外がスローされると、プログラムはこの例外を処理する catch ステートメントを探します。
finally ブロックは、try ブロックで割り当てられたリソースをクリーンアップしたり、例外が発生した場合でも実行する必要があるコードを実行したりするのに役立ちます。try ブロックの終了方法に関係なく、制御は常に finally ブロックに渡されます。
スロー: http://msdn.microsoft.com/en-us/library/1ah5wsex(v=vs.80).aspx
最後に: http://msdn.microsoft.com/en-us/library/zwc8s4fz(v=vs.80).aspx
プログラムがthrow
命令に適合すると、例外がスローされます。
アプリケーションが停止するか、実行を継続するかは、その例外を命令なしで処理するかどうかによって異なります。catch
finally
代わりに、例外がスローされたかどうかにかかわらず、そのブロック内の包含コードの実行を保証するために導入されています。