Новичок в C# / Правильно ли я написал вывод ошибки?
Добрый день. 
0. Блок if-else надо помещать в блок try. Так как зачем сравнивать если произошла ошибка?
1. В вашем случае лучше использовать ReadKey, так как по условию один символ от 1 до 5.
2. Желательно использовать блок finally, но в вашем случае не обязательно. 
3. На мой взгляд много лишних проверок 
Обработка ошибок в принципе реализована правильно, но надо помнить, что это достаточно тяжелая операция и в данном случае избыточная. В данном случае можно проверять через TryParse. Я бы решил так - static void Main()
{
   int number_user1 = 0;

   while (true)
   {
      Console.Write("Player 1 write number from 1 to 5: ");

      string inputChar = Console.ReadKey().KeyChar.ToString();

      if(int.TryParse(inputChar, out number_user1) && number_user1 <= 5 && number_user1 > 0)
      {
         break;
       }
       else
       {
          Console.WriteLine($"\nEnter only NUMBERS from 1 to 5 (you input {inputChar})");
       }
    }

   Console.WriteLine($"\nYou input {number_user1}");
   Console.Write("Press any key to close"); Console.ReadKey();
}
Также почитайте - https://docs.microsoft.com/en-us/dotnet/standard/e...
https://habrahabr.ru/post/221723/
https://habrahabr.ru/post/178805/
и
https://stackoverflow.com/questions/14973642/how-u...
else
                {
                    repeat = true;
                }
этот блок не нужен, можно удалить, так как если условие if не выполняется, то repeat = true.
И в блоке try в цикле while не нужна строка number_user1 = Convert.ToInt32(Console.ReadLine());
И цикл while в блоке try поменяй на условие iftry
                {
                    Console.Write("Player 1 write number from 1 to 5: ");
                    number_user1 = Convert.ToInt32(Console.ReadLine());
                    if (number_user1 > 5 || number_user1 == 0)
                    {
                        Console.Write("ERROR: Player 1 PLEASE write number from 1 to 5: ");
                    }
                }