假设你已经创建了一个实例 Window 类。该窗口用户使用。然后,一个异常,并参照实例是丢失,但窗口仍然用户看到的,因为实例仍然存在(这只是不引用了).

做什么在这些情况?

我具体谈到松鼠脚本语言(http://www.squirrel-lang.org/).相反爪哇,这似乎并没有 finally 阻止或终结方法,所以是例外处理在破这种语言吗?

有帮助吗?

解决方案

我不知道松鼠,但是即使在没有一个最后块你能模仿的行为的某些程度上内Java:

Exception error = null;
try {
 // do something
}
catch (Exception e) {
  error = e;
}
// My finally code goes here
// ...
if (error != null) {
  // Oh dear clean up all my resources - files, windows, sockets etc.
  throw error;
}

所以赶块储存的异常在一个变量,可以测试,后来如果你想要再次引发,它仍然可以让你的机会来做的其他清理。显然有细微差别,你必须要知道的(例如明确的种例外,需要特殊处理,更多的例外情况被扔外面尝试/赶上)但是仔细审议你应该没问题。

系统的资源(图像处理、插座、窗户、文件处理等等。) 特别是往往是有点乱Java和其他垃圾收集的语言。通常这些资源将管理一级有一个明确的close()方法。所以如果你知道事情已经一堆你通常会援引一个明确的close()上对象,以清理它们通俗易懂。否则的对象将清理本身期间的最后定稿,但仅在GC这可能是一个漫长的时间到来。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top