Исключение нулевого указателя - это индикатор того, что вы используете объект, не инициализируя его.
Например, ниже - класс ученика, который будет использовать его в нашем коде.
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 ");
}
}
}
Мне это похоже на платформу, где можно включить собственную трассировку стека. Я предполагаю, что это могло бы использоваться внутренне в IDE с JCLDebug. Возможно, это предназначается для пользователей, чтобы быть в состоянии предоставить madExcept или другую реализацию.
Нет, я еще не использовал их (в настоящее время использующий madExcept для этого, и также сделал некоторые эксперименты с JclDebug) - но спасибо за подсказку!
TOndrej корректен. Новые опции, добавленные к Классу исключений, - чтобы третьи лица сцепили свой собственный код трассировки стека в RTL. Реализация по умолчанию Класса исключений не производит свои собственные отслеживания стека.
Вам было бы целесообразно посмотреть на MadExcept. Мало того, что это обеспечивает превосходную обработку любых необработанных исключений (экранный захват, электронная почта и т.д.), но это имеет хороший набор вызываемых стандартных программ, чтобы вручить Вам, поддерживают отслеживание стека, которое можно использовать почти где угодно. Интерфейс базового уровня