【发布时间】:2018-08-23 07:54:33
【问题描述】:
我读了很多关于为什么你不应该抓住“Throwable”的东西。这不是我要问的,因为这对我来说非常明显。 但实际情况是什么,在哪些情况下这样做才有意义?我到处都看到,对我来说,这样的代码完全被破坏了。
我能想到的可能是一个看门狗,它监视一个应用程序并在它崩溃时重新启动它。不确定这是否有意义,但应用程序永远不应该在它自己的代码库中观察包括错误在内的异常,对吧?
【问题讨论】:
-
如果您可以在现场处理它,而不会破坏整个流程,为什么不呢?这一切都取决于要求。
-
@Stultuske 当然可以,但是您显然不想捕获诸如“OutOfMemoryError”之类的东西并将自己置于高于 JVM 的位置,因为如果您不让应用程序运行,之后应用程序将不健康它死了。至少,我是这么想的。也许您可以将其用于日志记录,但如果发生错误,我的理解是,应用程序必须崩溃。
-
@ernest_k 这与这个问题完全相反
-
在某些情况下捕获错误并继续是合适的。例如:在一个 servlet 中,如果您遇到 OutOfMemoryError 因为某个特定请求碰巧吃掉了所有内存,您可以尝试继续,因为在处理请求后对象将被 GC。
标签: java exception error-handling exception-handling throwable