Получение суда в окне вывода Visual Studio 2005 года?

Исключение нулевого указателя - это индикатор того, что вы используете объект, не инициализируя его.

Например, ниже - класс ученика, который будет использовать его в нашем коде.

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 ");
        }
    }
}
17
задан Jacob 13 December 2009 в 19:33
поделиться

5 ответов

Можно получить вывод суда как это, например:

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).

8
ответ дан 30 November 2019 в 12:27
поделиться

Вы не можете сделать этого.

, Если Вы хотите произвести к окну вывода отладчика, назовите OutputDebugString.

я нашел эта реализация из 'teestream', который позволяет выводу того переходить к нескольким потокам. Вы могли реализовать поток, который отправляет данные OutputDebugString.

6
ответ дан 30 November 2019 в 12:27
поделиться

Комбинация ответа ben и Mike Dimmick: Вы реализовали бы stream_buf_, который заканчивает тем, что назвал OutputDebugString. Возможно, кто-то уже сделал это? Смотрите на две предложенных библиотеки входа Повышения.

2
ответ дан 30 November 2019 в 12:27
поделиться

Действительно ли это - случай выходного экрана, просто высвечивающегося и затем dissapearing? раз так можно сохранить его открытым при помощи cin как последний оператор перед возвратом.

1
ответ дан 30 November 2019 в 12:27
поделиться

Кроме того, в зависимости от Ваших намерений, и какими библиотеками Вы пользуетесь, можно хотеть использовать макрос ТРАССИРОВКИ ( MFC) или ATLTRACE ( ATL).

0
ответ дан 30 November 2019 в 12:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: