【发布时间】:2016-06-11 04:19:07
【问题描述】:
我的处理 3 代码表现出一些奇怪的行为。我定义了一个void 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();
}
如您所见,它所做的唯一一件事就是尝试关闭一个名为 output 的缓冲写入器。冲洗这个作家并不重要,所以现在我只是把它从我的草图中删除。但从长远来看,我很好奇这是怎么发生的。我的代码中没有其他地方是显式调用的退出方法。 IE,代码无法决定退出。只有当用户使用 X 关闭问题时。
注意:我也无法上传此方法所附的整个代码,因为它太长了。我认为也许更好的方式来表达我的问题是这样的:
“嗨,我是一个对退出方法一无所知的菜鸟。无论如何,如果我没有明确调用它或点击退出按钮,是否可以以某种方式调用此方法?”
【问题讨论】:
-
正在执行的代码是什么?
-
你覆盖父级的 exit() 方法吗?
-
您能否提供一个minimal reproducible example 来说明问题?
-
您不必上传整个代码。正如 Kevin 上面所说:提供一个展示问题的最小、完整和可验证的示例。这并不意味着提供整个代码。
-
@Murenrb 这正是我们要求minimal reproducible example 的原因。您发布的代码远没有足够的信息。任何东西都可以调用它。尝试将堆栈跟踪打印到控制台以跟踪调用它的内容。
标签: processing exit