В случае, когда аргументов нет, ваша программа рушится.
Нужно обрабатывать эту ситуацию, писать Usage и выходить с ненулевым кодом возврата.