コード例 #1
0
 /// <exception cref="ArgumentNullException" />
 /// <exception cref="HAppFailureException" />
 static void ThrowCommandParametersError(string message)
 {
     HConsole.PrintError(message);
     PrintSyntax();
     throw new HAppFailureException(""); // ошибка уже распечатана
 }
コード例 #2
0
        static int Main(string[] args)
        {
            HProgram.SpecifyMainThread(); // указать главный поток для библиотеки CommonHelpers
            Console.Title = AssemblyName;

            AppDomain.CurrentDomain.UnhandledException += AppDomainUnhandledException_Handler;
            Console.CancelKeyPress += Console_CancelKeyPress;

            HConsole.PrintIntensive($"*** УТИЛИТА [{AssemblyName.ToUpper()}]: ***");

            if (args.Length == 0)
            {
                PrintSyntax();
                return(0); // нет ошибки
            }
            if (!HOps.IsOneOf(args.Length, 3, 4))
            {
                HConsole.PrintError(
                    "Ожидалось 3 либо 4 параметра (в аргументах командной строки).");
                goto INCORRECT_CMD;
            }
            ServerName       = args[0].Trim();
            DatabaseName     = args[1].Trim();
            CommandName      = args[2].Trim();
            CommandParameter = args.Length >= 4 ? args[3].Trim() : null;
            if (ServerName == "" || DatabaseName == "" || CommandName == "" || CommandParameter == "")
            {
                HConsole.PrintError("Пустые параметры (в аргументах командной строки).");
                goto INCORRECT_CMD;
            }

            if (!(
                    MatchCommad(UtilityCommand.CreateStructure) ||
                    MatchCommad(UtilityCommand.DestroyStructure) ||
                    MatchCommad(UtilityCommand.RecreateStructure) ||
                    MatchCommad(UtilityCommand.DeleteData) ||
                    MatchCommad(UtilityCommand.FillTest)
                    ))
            {
                HConsole.PrintError($"Неопознанная команда: \"{CommandName}\".");
                goto INCORRECT_CMD;
            }

            int
                status = 0; // нет ошибки

            try
            {
                Run();
            }
            catch (HAppFailureException e)
            {
                if (e.Message != "")
                {
                    HConsole.PrintError(e);
                }
                status = 1; // ошибка
            }
            catch (Exception e)
            {
                // Непредвиденная ошибка в главном программном потоке:
                if (Console.CursorLeft > 0)
                {
                    Console.WriteLine();
                }
                HConsole.PrintError(e, true, true);
                return(-1); // сбой в программе
            }
            return(status);

INCORRECT_CMD:
            PrintSyntax();
            return(1); // ошибка
        }
コード例 #3
0
 /// <exception cref="HAppFailureException" />
 static void ThrowNotImplementedCommand()
 {
     HConsole.PrintError($"Команда \"{CommandName}\" не реализована.");
     PrintSyntax();
     throw new HAppFailureException(""); // ошибка уже распечатана
 }