finally 區塊 在 try 區塊結束時必定執行,不論離開原因:
break/continue/goto/return 跳離
try { Console.WriteLine("try"); goto leave; }
finally { Console.WriteLine("finally"); }
leave: Console.WriteLine("leave");
// 輸出:try → finally → leave
try。InnerException 鏈結)。
float x, y, z;
try {
z = Math.Sqrt(x*x - y*y); // 可能負數開根號 → NaN
}
catch {
z = Math.Sqrt(y*y - x*x); // 取絕對值補救
}
finally {
z += x; // 清理/後處理
}
此模式實現「嘗試→失敗補救→最終清理」完整語意。