У меня есть код обработки 3, который демонстрирует нечетное поведение. У меня есть определенный метод void exit()
, который выполняется в произвольные моменты времени, без того, что пользователь действительно сообщает, что код должен выйти. Вот способ:exit() метод введен без команды exit
void exit()
{
println("clearing buffer and closing file");
if (output != null) {
print("output is not null");
try {
output.close();
}
catch (IOException e) {
println("Error while closing the writer");
}
}
super.exit();
}
Как вы можете видеть, единственное, что он делает, это попытка закрыть буферизованный писатель, называемый выводом. Попытка этого писателя не имеет решающего значения, так что теперь я просто удаляю его из своего эскиза. Но в долгосрочной перспективе мне любопытно, как это может происходить. Нигде в моем коде не вызывается метод exit. IE, код не может решить выйти. Только когда пользователь закрывает проблему, используя X.
Примечание: я не могу загрузить весь код, этот метод также подключен, потому что он слишком длинный. Я думаю, что, возможно, лучший способ рассказать о моих вопросах будет примерно таким:
«Привет, я noob, который ничего не знает о методе выхода. Есть ли способ, чтобы этот метод каким-то образом вызывался без меня явно вызывая его или нажав кнопку выхода? "
Что код выполняется? – zubergu
Вы переопределяете метод parent exit()? –
Можете ли вы предоставить [mcve], который проявляет проблему? –