如果OutOfMemoryError非常不鼓励捕获,因为在捕获错误之后您可能不知道JVM的状况,为什么JVM不会简单地终止并以某种方式通知用户而不是抛出错误?
因为没有单一的标准方法向用户报告错误情况.抛出错误允许在顶层捕获对象,并且在终止之前,条件的报告可能是适当的(控制台消息,写入日志文件,显示对话框等).文档说明合理的应用程序不应该捕获错误,这是正确的:处理它们的最佳方式是在框架代码中,因为它们的处理方式很少(尽管不是零).具体来说,它们无法从实际中恢复,这就是大多数应用程序作者试图捕获它们的原因.
更新:还有另一个原因.抛出错误不仅会导致错误被捕获:它还会导致"finally"块中的代码被执行.由于这些块可能包含关键清理代码,因此允许它们在应用程序终止之前运行是很重要的.
| 归档时间: |
|
| 查看次数: |
315 次 |
| 最近记录: |