Исключение нулевого указателя - это индикатор того, что вы используете объект, не инициализируя его.
Например, ниже - класс ученика, который будет использовать его в нашем коде.
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 ");
}
}
}
Можно получить вывод суда как это, например:
std::streambuf* old_rdbuf = std::cout.rdbuf();
std::stringbuf new_rdbuf;
// replace default output buffer with string buffer
std::cout.rdbuf(&new_rdbuf);
// write to new buffer, make sure to flush at the end
std::cout << "hello, world" << std::endl;
std::string s(new_rdbuf.str());
// restore the default buffer before destroying the new one
std::cout.rdbuf(old_rdbuf);
// show that the data actually went somewhere
std::cout << s.size() << ": " << s;
Magicking это в окно вывода Visual Studio 2005 года оставляют как осуществление Visual Studio сменный разработчик 2005 года. Но Вы могли, вероятно, перенаправить его в другом месте, как файл или пользовательское окно, возможно, путем записи пользовательского streambuf класса (см. также boost.iostream).
Вы не можете сделать этого.
, Если Вы хотите произвести к окну вывода отладчика, назовите OutputDebugString.
я нашел эта реализация из 'teestream', который позволяет выводу того переходить к нескольким потокам. Вы могли реализовать поток, который отправляет данные OutputDebugString.
Комбинация ответа ben и Mike Dimmick: Вы реализовали бы stream_buf_, который заканчивает тем, что назвал OutputDebugString. Возможно, кто-то уже сделал это? Смотрите на две предложенных библиотеки входа Повышения.
Действительно ли это - случай выходного экрана, просто высвечивающегося и затем dissapearing? раз так можно сохранить его открытым при помощи cin как последний оператор перед возвратом.
Кроме того, в зависимости от Ваших намерений, и какими библиотеками Вы пользуетесь, можно хотеть использовать макрос ТРАССИРОВКИ ( MFC) или ATLTRACE ( ATL).