namespace AddisonWesley.Michaelis.EssentialCSharp.Chapter05.Listing05_27
{
    using System;

    public class ThrowingExceptions
    {
        public static void Main()
        {
            try
            {
                Console.WriteLine("Rozpoczęcie wykonywania kodu");
                Console.WriteLine("Zgłoszenie wyjątku");
                throw new Exception("Dowolny wyjątek");
                Console.WriteLine("Koniec wykonywania kodu");
            }
            catch(FormatException exception)
            {
                Console.WriteLine(
        "Zgłoszono wyjątek FormatException");
            }
            catch(Exception exception)
            {
                Console.WriteLine(
    $@"Ponowne zgłaszanie nieoczekiwanego błędu: {
      exception.Message }");

                throw;
            }
            catch
            {
                Console.WriteLine("Nieoczekiwany błąd!");
            }

            Console.WriteLine(
              "Zamykanie programu");
        }
    }
}
