Сальников Дмитрий, 397, 4 задание.

Везде кидаешь исключение со словами 'wrong amount of arguments'. Во-первых, пользователю было бы приятно знать, какая именно команда кидает исключение. Во-вторых, это не хорошее повторение кода. Можно написать своё исключение и кидать его отовсюду но с разными именами команд. Тогда throw выглядел бы как-то так:
throw InvalidNumberOfArgumentsException("commit")