using System;

namespace ExceptionHandling
{
    class Tester
    {

        static void Main()
        {
            Console.WriteLine("Wejście w Main()...");
            Tester t = new Tester();
            t.Run();
            Console.WriteLine("Wyjście z Main()...");
        }

        public void Run()
        {
            Console.WriteLine("Wejście w Run()...");
            Func1();
            Console.WriteLine("Wyjście z Run()...");
        }

        public void Func1()
        {
            Console.WriteLine("Wejście w Func1()...");
            Func2();
            Console.WriteLine("Wyjście z Func1()...");
        }

        public void Func2()
        {
            Console.WriteLine("Wejście w Func2()...");
            throw new ApplicationException();
            // następna linia nigdy się nie wykona
            Console.WriteLine("Wyjście z Func2()...");
        }
    }
}