try-catch-finallyの実行順序を理解するのに問題があります。私が見たすべての例(http://stackoverflow.com/questions/4191027/order-of-execution-of-try-catch-and-finally-blockのように)には、非常に単純な「キャッチ」部分があります。コンソールに印刷します。しかし、キャッチで「throw」ステートメントを使用するとどうなりますか?
私が考えることができる最も単純なコードは、問題を捉えています。
public class TestClass
{
void Foo(int num)
{
int answer = 100;
try
{
answer = 100 / num;
}
catch (Exception e)
{
//Probably num is 0
answer = 200;
throw;
}
finally
{
Console.WriteLine("The answer is: " + answer);
}
}
}
num == 2の場合、出力は次のようになります。
答えは:50
しかし、num == 0の場合は何が出力されますか?
答えは次のとおりです。100
答えは次のとおりです。200
印刷はまったくありません...
それとも単なる「未定義動作」ですか?