Исключение нулевого указателя - это индикатор того, что вы используете объект, не инициализируя его.
Например, ниже - класс ученика, который будет использовать его в нашем коде.
public class Student {
private int id;
public int getId() {
return this.id;
}
public setId(int newId) {
this.id = newId;
}
}
Приведенный ниже код дает вам исключение с нулевым указателем.
public class School {
Student obj_Student;
public School() {
try {
obj_Student.getId();
}
catch(Exception e) {
System.out.println("Null Pointer ");
}
}
}
Поскольку вы используете Obj_Student
, но вы забыли инициализировать его, как в правильном коде, показанном ниже:
public class School {
Student obj_Student;
public School() {
try {
obj_Student = new Student();
obj_Student.setId(12);
obj_Student.getId();
}
catch(Exception e) {
System.out.println("Null Pointer ");
}
}
}
Я использую эти pre-revprop-change
рычаг, который позволяет на самом деле возвращаться и редактировать комментарии и такую информацию после того, как фиксация была выполнена. Это очень полезно, если существует missing/errorneous информация в комментариях фиксации.
Здесь я отправляю pre-revprop-change.bat
пакетный файл для Windows NT или позже... Можно, конечно, улучшить его с большим количеством модификаций. Можно также произойти post-revprop-change.cmd
из него, чтобы скопировать старое snv:log
где-нибудь или только добавить его к новому журналу...
единственная хитрая часть должна была быть в состоянии на самом деле проанализировать stdin от пакетного файла... Это сделано здесь с эти FIND.EXE
команда.
другой это - то, что у меня были отчеты от других пользователей проблем с использованием /b
с эти exit
команда. Вы, возможно, должны только удалить это /b
в Вашем определенном приложении, если ошибочные случаи не ведут себя хорошо.
@ECHO OFF
set repos=%1
set rev=%2
set user=%3
set propname=%4
set action=%5
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: Only allow changes to svn:log. The author, date and other revision
:: properties cannot be changed
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
if /I not '%propname%'=='svn:log' goto ERROR_PROPNAME
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: Only allow modifications to svn:log (no addition/overwrite or deletion)
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
if /I not '%action%'=='M' goto ERROR_ACTION
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: Make sure that the new svn:log message contains some text.
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
set bIsEmpty=true
for /f "tokens=*" %%g in ('find /V ""') do (
set bIsEmpty=false
)
if '%bIsEmpty%'=='true' goto ERROR_EMPTY
goto :eof
:ERROR_EMPTY
echo Empty svn:log properties are not allowed. >&2
goto ERROR_EXIT
:ERROR_PROPNAME
echo Only changes to svn:log revision properties are allowed. >&2
goto ERROR_EXIT
:ERROR_ACTION
echo Only modifications to svn:log revision properties are allowed. >&2
goto ERROR_EXIT
:ERROR_EXIT
exit /b 1
У меня есть одна установка, пользующаяся библиотекой Ruby Tinder, которую я отправляю в комнату походного костра, если кто-либо хочет сценарий, я могу отправить или отправить код Вам.
Другие общие, которые я видел, являются сообщениями к системам отслеживания ошибок и уведомлениям по электронной почте.
Мы используем сценарий рычага фиксации для инициирования нашего робота выпуска. Запись новой информации о выпуске в файл под названием changes.txt в наших различных продуктах инициирует создание тега и соответствующих артефактов.
Мы проверяем следующее с нашими сценариями рычага:
, Мы все еще хотим реализовать следующее:
Рычаг для уведомления системы управления ошибки/проблемы изменений в репозитории. Т.е. сообщение о фиксации имеет issue:546 или подобный тег в нем, который анализируется и питается к системе управления ошибки.
Наиболее распространенный я думаю, должен позволить людям изменять комментарии пересмотра после фиксации.
необходимо позволить сценарию рычага 'pre-revprop-change' позволить это. Пример, если, если включено позволяет редактировать только свойство комментария и только быть исходным разработчиком. Большой для исправления опечаток.
Я использую рычаги постфиксации (, я думаю, что это - этот ) добавлять сообщение к форуму по Basecamp для каждой фиксации. Два преимущества:
Как ведущий разработчик, я получаю свертку фиксаций каждое утро (через канал RSS от этого basecamp форум) и вижу то, что моя команда была готова довольно быстро.
Наша установка Trac/SVN находится позади нашего брандмауэра, таким образом, это дает моим большим шишкам в других местоположениях окно в то, что мы делаем. Они не могли бы понять его, но менеджеру большое действие похоже, ну, в общем, на большое действие;)
я предполагаю, что конечный результат этого подобен тому, что делает @Aviv.
я изучаю решения для создания последней фиксации на отдельном сервере для непрерывной интеграции, но я оказываюсь перед необходимостью изменять способ, которым мы вносим изменения в нашу схему базы данных, прежде чем это будет работать.
несколько вещей мы используем их для:
В моем месте работы мы настроили рычаг постфиксации, который генерирует каналы RSS, которые отображены в различных инструментальных панелях и используются для рецензентов кода для знания, когда пора рассмотреть и для нас, чтобы видеть, что новые сотрудники фиксируют достаточно.
Мы используем FogBugz для отслеживания ошибок, он предоставляет сценарии фиксации подрывной деятельности, которые позволяют Вам включать номер дела в свою регистрацию комментариев, и затем связывает ошибку с регистрацией, которая зафиксировала его. Это действительно требует экземпляр WebSVN быть настроенным так, чтобы у Вас было веб-средство просмотра для Вашего репозитория.
Если у Вас есть соединение пользователей UNIX и пользователей Windows, работающих с репозиторием, я убеждаю Вас использовать случай-insensitive.py сценарий рычага перед фиксацией в качестве меры предосторожности. Это предотвращает hard-to-sort-out ситуации, где сбой обновлений svn для пользователей Windows из-за файла переименовывает, который только изменил случай имени файла . Верьте мне, существует хороший шанс, он сохранит Вас проблема.
Это было обсуждено в пользовательском списке рассылки подрывной деятельности только что. Этот сообщение в особенности имеет некоторые полезные идеи.