Исключение нулевого указателя генерируется, когда приложение пытается использовать null в случае, когда требуется объект. К ним относятся:
null
. null
. null
, как если бы это был массив. null
, как если бы это был массив. null
как будто это было значение Throwable. Приложения должны бросать экземпляры этого класса, чтобы указать на другие незаконные использования объекта null
.
Ссылка: http://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html
GNU имеет gengetopt, который генерирует код для структуры данных опций и эти getopt_long
код, чтобы проанализировать командную строку и заполнить структуру.. Довольно легко учиться и работы хорошо.
В качестве награды можно передать структуру опций вокруг кода и избежать глобального устройства хранения данных при желании.
Это обеспечивает семантику стиля GNU (очевидно), и является достаточно маленьким для простого включения с проектом для распределения, если Вы не уверены в среде сборки своей аудитории.
Как говорится, "стандарт лучше, чем лучше". Таким образом, я всегда использую getopt_long () и что-либо, что является non-GNOME/glibby и бойким на чем-либо, что делает.
По той же причине я всегда использую optparse в приложениях Python, даже при том, что это имеет много недостающих возможностей относительно getopt_long ()..., но это - стандарт Python.
popt
отказался для длинный время - парсинг аргумента был объединен в glib
начиная с версии 2.6 три года назад.
я использую glib
синтаксический анализатор или порт Python getopt
.
Мне действительно нравится библиотека TCLAP, потому что это очень гибко и просто в использовании. Это также абсолютно основано на шаблоне, таким образом, это - библиотека только для заголовка.
Моя ошибка: Вы сказали C, и я отправил библиотеку C++...