Другое событие NullPointerException
возникает, когда объявляется массив объектов, а затем сразу же пытается разыменовать его внутри.
String[] phrases = new String[10];
String keyPhrase = "Bird";
for(String phrase : phrases) {
System.out.println(phrase.equals(keyPhrase));
}
Этот конкретный NPE можно избежать, если порядок сравнения отменяется ; а именно, использовать .equals
для гарантированного непустого объекта.
Все элементы внутри массива инициализируются их общим начальным значением ; для любого типа массива объектов, это означает, что все элементы null
.
Вы должны инициализировать элементы в массиве перед доступом или разыменованием их.
String[] phrases = new String[] {"The bird", "A bird", "My bird", "Bird"};
String keyPhrase = "Bird";
for(String phrase : phrases) {
System.out.println(phrase.equals(keyPhrase));
}
Файлы PDB сгенерированы, когда Вы разрабатываете свой проект. Они содержат информацию, касающуюся созданных двоичных файлов, которые может интерпретировать Visual Studio.
, Когда программа отказывает и она генерирует отчет о катастрофическом отказе, Visual Studio в состоянии взять тот отчет и связать его назад с исходным кодом через файл PDB для приложения. Файлы PDB должны быть созданы из того же двоичного файла, который генерировал отчет о катастрофическом отказе!
существуют некоторые проблемы, с которыми мы встречались со временем.
, Если кто-либо знает, как победить первого, я был бы благодарен за некоторый вход.
Файлы PDB отображают MSIL блока на строки первоисточника. Это означает, что при помещении PDB, который был скомпилирован с блоком в том же каталоге как блок, отслеживания стека исключительной ситуации будут иметь имена и строки положений в файлах первоисточника. Без файла PDB Вы будете только видеть название класса и метода для каждого уровня отслеживания стека.
Необходимо изучить установку сервера символов и индексацию файлов PDB к системе управления исходным кодом. Я просто недавно прошел этот процесс для нашего продукта, и это работает очень хорошо. Вы не должны быть обеспокоены предоставлением доступа к файлам PDB, с двоичными файлами, ни как получить соответствующий исходный код при отладке файлов дампа.
книга John Robbins: http://www.amazon.com/Debugging-Microsoft-NET-2-0-Applications/dp/0735622027/ref=pd_bbs_sr_1?ie=UTF8&s=books&qid=1222366012&sr=8-1
здесь Ищет некоторый пример кода для генерации мини-дампов (которые не должны быть ограничены для постразрушения анализа - можно генерировать их в любой точке в коде, не отказывая): http://www.codeproject.com/KB/debug/postmortemdebug_standalone1.aspx