/// <exception cref="ArgumentNullException" /> /// <exception cref="HAppFailureException" /> static void ThrowCommandParametersError(string message) { HConsole.PrintError(message); PrintSyntax(); throw new HAppFailureException(""); // ошибка уже распечатана }
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); // ошибка }
/// <exception cref="HAppFailureException" /> static void ThrowNotImplementedCommand() { HConsole.PrintError($"Команда \"{CommandName}\" не реализована."); PrintSyntax(); throw new HAppFailureException(""); // ошибка уже распечатана }