1. 程式人生 > 其它 >c#異常機制

c#異常機制

   static  void  Main(string[] args)
        {
            try
            {
                try
                {
                    try
                    {
                        throw new Exception();
                    }
                    finally
                    {
                        Console.WriteLine(1);
                    }
                }
                finally
                {
                    Console.WriteLine(2);
                }
            }
            catch (System.Runtime.CompilerServices.RuntimeWrappedException e)
            {

                Console.WriteLine("catch");
            }
            catch {
                Console.WriteLine("catch");
            }
            finally
            {
                Console.WriteLine(3);
            }
            Console.ReadKey();
            
        }

在try中丟擲異常,CLR將去catch中匹配捕捉型別相同的catch塊,如果找不到將去更上層的堆疊尋找。一旦找到匹配的catch塊,就會執行內層的所有finally塊執行完成後才會執行匹配的catch塊,最後執行匹配catch塊對應的finally塊。