After the couple of seconds, the following program outputs
Process is terminated due to StackOverflowException
instead of my message. Why?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Numerics;
namespace maximumVariable
{
    class Program
    {
        public static BigInteger Factorial(int num)
        {
            try
            {
                return (num > 1) ? num*Factorial(num - 1) : (1);
            }
            catch
            {
                throw;
            }
        }
        static void Main(string[] args)
        {
            BigInteger kingKong=0;
            int facParameter=0;
            try
            {
                while (true)
                {
                    kingKong = Factorial(facParameter);
                    facParameter++;
                }
            }
            catch
            {
                Console.WriteLine("The maximum value " + kingKong.ToString()+"has been achieved after "+facParameter.ToString()+" iterations");
            }
        }
    }
}
 
     
     
     
    