Come creare un corretto gestore di argomenti per il software CLI?

0

Ho pensato a una classe ArgumentManager che funziona in questo modo:

  • Un costruttore con argc & argv (o std :: vector) come parametro.
  • getCount () = > Restituisce argc.
  • getArgLit (argLit) = > Restituisce vero se l'argomento è stato trovato con il letterale.
    (ad esempio '-a')
  • getArgPos (argPos) = > Restituisce argomento con posizione 'argPos'.
  • getArgVal (argLit) = > Restituisce l'argomento che segue la corrispondenza di 'argLit'.
    (es. '-un thiswillbereded').

Dopo, ho pensato al modo di gestire errori come "L'argomento posizionale non esiste" e ho pensato a una soluzione try-catch che è questa:

ArgumentManager am(argc, argv);

try {
  am.getPosArg(2);
} catch (ArgumentManager::notArgException) {
  std::cerr << "Error: Please enter at least 2 arguments.";
}

Ovviamente la classe ArgumentManager genererà errori se necessario.

Ora ecco le mie domande:

  • È un buon design di classe?
  • Come posso migliorarlo?
  • Se è troppo brutto, come faresti?

Grazie.

    
posta Nurrl 12.09.2017 - 21:52
fonte

0 risposte

Leggi altre domande sui tag