我假設我在這裏錯過了一些非常微不足道的東西,但是因爲這對我來說並不明顯。無論是否有例外,我總是認爲「終於」會一直執行。爲什麼我的「終於」不會跑?
無論如何,這段代碼無法運行,我不知道爲什麼。它到達i = i/j並拋出一個DivideByZero異常,但我會認爲它會繼續並在停止之前執行finally語句。
static void Main(string[] args)
{
int i = 1;
try
{
int j = 0;
i = i/j;
Console.WriteLine("can't get");
}
finally
{
Console.WriteLine("finally ran");
}
}
奇怪!我一直認爲這段代碼最終會出現編譯時錯誤。我試了一下,它的行爲與Jon Skeet在他的回答中提到的方式完全相同。 –