当我阅读Core.Java.Volume.i时,我可以';我不明白这个句子的意思

当我阅读Core.Java.Volume.i时,我可以';我不明白这个句子的意思,java,Java,当我阅读Core.Java.Volume.I时,我无法理解以下内容的含义: “小心确保关键部分中的代码未被删除 通过引发异常绕过。如果在 节的末尾,finally子句将放弃锁, 但物体可能处于损坏状态。” 我如何确保这一点?在抛出异常时,是否必须绕过关键部分中的代码 在finally部分添加您自己的代码,以确保对象处于安全状态。具体怎么做?取决于对象和状态。在finally部分添加您自己的代码,以确保对象处于安全状态。具体怎么做?取决于对象和状态。请考虑以下伪代码: Patient patien

当我阅读Core.Java.Volume.I时,我无法理解以下内容的含义:

“小心确保关键部分中的代码未被删除 通过引发异常绕过。如果在 节的末尾,finally子句将放弃锁, 但物体可能处于损坏状态。”


我如何确保这一点?在抛出异常时,是否必须绕过关键部分中的代码

finally
部分添加您自己的代码,以确保对象处于安全状态。具体怎么做?取决于对象和状态。

finally
部分添加您自己的代码,以确保对象处于安全状态。具体怎么做?取决于对象和状态。

请考虑以下伪代码:

Patient patient = service.getPatient(name);
hospitalEquipment.lock();
try {
  patient.pauseLifeSupport();
  // some code causing an exception
  patient.resumeLifeSupport();
} finally {
  hospitalEquipment.unlock();
}

在该伪代码中,异常导致绕过“关键部分”,即恢复生命支持。您可以通过将调用移动到
finally
块内的
resumelifestupport()
或具有一些紧急行为来解决此问题。

考虑以下伪代码:

Patient patient = service.getPatient(name);
hospitalEquipment.lock();
try {
  patient.pauseLifeSupport();
  // some code causing an exception
  patient.resumeLifeSupport();
} finally {
  hospitalEquipment.unlock();
}

在该伪代码中,异常导致绕过“关键部分”,即恢复生命支持。您可以通过将调用移动到
finally
块内的
resumeLifeSupport()
或具有一些紧急行为来解决此问题。

可能有助于查看quote正在讨论的代码。。。。你不觉得吗?看看引用的代码可能会有帮助。。。。你不觉得吗?