Исключение нулевого указателя генерируется, когда приложение пытается использовать null в случае, когда требуется объект. К ним относятся:
null
. null
. null
, как если бы это был массив. null
, как если бы это был массив. null
как будто это было значение Throwable. Приложения должны бросать экземпляры этого класса, чтобы указать на другие незаконные использования объекта null
.
Ссылка: http://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html
С точки зрения устанавливания профиля имейте Вас попробованный perlcritic --profile-proto
? Это испустит к stdout все Ваши установленные политики со всеми их опциями с описаниями обоих, включая их значения по умолчанию, в perlcriticrc формате. Сохраните и отредактируйте для соответствия тому, что Вы хотите. Каждый раз, когда Вы обновляете Perl:: Критик, можно хотеть выполнить эту команду снова и сделать разность с текущим perlcriticrc, таким образом, Вы видите любые изменения в существующих политиках и берете любые новые.
С точки зрения выполнения perlcritic регулярно, настраивает Тест:: Perl:: тест Критика наряду с остальной частью Ваших тестов. Это хорошо для нового кода.
Для Вашего существующего кода используйте Тест:: Perl:: Критик:: Прогрессивный вместо этого. T::P:: C:: Прогрессивный успешно выполнится в первый раз, когда Вы выполняете его, но сохраните, рассчитывает на количество нарушений; после этого, T::P:: C:: Прогрессивный будет жаловаться, повышается ли какое-либо из количеств. Одна вещь высматривать состоит в том, когда Вы возвращаетесь изменения в своей системе управления исходным кодом. (Вы используете один, не так ли?) Говорят, что я регистрируюсь в изменении и запускаю тесты, и мои изменения сокращают количество P:: C нарушения. Позже, оказывается, что мое изменение было плохо, таким образом, я возвращаюсь к старому коду. T::P:: C:: Прогрессивный тест перестанет работать из-за уменьшенных количеств. Самая легкая вещь сделать в этой точке состоит в том, чтобы просто удалить файл истории (местоположение по умолчанию t/.perlcritic-history) и работать снова. Это должно воспроизвести Ваши старые количества, и можно записать новый материал для перевода в нерабочее состояние их снова.
Perl:: у Критика есть много политик, которые поставлются с ним, но существует набор дополнительных дистрибутивов политик. Взгляните на Задачу:: Perl:: Критик и Задача:: Perl:: Критик:: IncludingOptionalDependencies.
У Вас не должно быть единственного дескриптора perlcriticrc весь Ваш код. Создайте отдельные perlcriticrc файлы для каждого набора файлов, которые Вы хотите протестировать и затем отдельный тест, который указывает каждому. Для примера взгляните на тесты автора для P:: C самостоятельно по http://perlcritic.tigris.org/source/browse/perlcritic/trunk/Perl-Critic/xt/author/. Когда тесты автора запущены, существует тест, который работает на основе всего кода P:: C, второй тест, который применяет дополнительные правила только о политиках и третьей, которая критикует P:: тесты C.
Я лично думаю, что все должны работать на "жестоком" уровне серьезности, но выводить из строя политики, с которыми они не соглашаются. Perl:: Критик не полностью сам совместим; даже P:: C разработчики не соглашаются со всем, что Conway говорит. Посмотрите на perlcriticrc файлы, используемые на Perl:: Критик самостоятельно и поиск Perl:: код Критика для экземпляров "## никакой критик"; я количество 143 в настоящее время.
(Да, я - один из Perl:: разработчики Критика.)
Существует perltidy для большинства стилистических стандартов. perlcritic может быть легко настроен с помощью .perlcritic файла. Я лично использую это на уровне один, но я отключил несколько политик.
В дополнение к 'автоматизированным платформам', я настоятельно рекомендую Лучшие практики Perl Damian Conway. Я не соглашаюсь с 100% того, что он предлагает, но большую часть времени он, барабанят.
Как:
Похож на хороший инструмент!
Сообщение выше упоминания Devel:: Профессор, вероятно, действительно имеет в виду Devel:: Покрытие (для получения покрытия кода набора тестов).
Хорошая комбинация является perlcritic с EPIC для Eclipse - CTRL-SHIFT-C хита (или Ваш предпочтительный настроенный ярлык) и Ваш код повышен с индикаторами предупреждения везде, где perlcritic нашел, что что-то жалуется на. Намного более хороший, чем то, чтобы не забывать выполнить его перед регистрацией. И как нормальное с perlcritic, это возьмет Ваш .perlcriticrc, таким образом, можно будет настроить правила. Мы сохраняем наш .perlcriticrc в управлении версиями, таким образом, все получают те же стандарты.
В дополнение к косметическим лучшим практикам я всегда нахожу полезным выполнить Devel:: Профессор на моем комплекте модульного теста к покрытию контрольного испытания.