Java 有什么好的理由可以抓住抛弃者?

Java 有什么好的理由可以抓住抛弃者?,java,exception,error-handling,exception-handling,throwable,Java,Exception,Error Handling,Exception Handling,Throwable,我读了很多关于为什么你不应该看《抛弃》的东西。这不是我要问的,因为这对我来说很明显但实际情况是什么,这样做有意义吗?我到处都能看到,对我来说,这样的代码完全被破坏了 我所能想到的可能只是一个看门狗,它监视一个应用程序并在它崩溃时重新启动它。不确定这是否有意义,但应用程序永远不应该监视异常,包括其自身代码库中的错误,对吗?一个很好的理由是,如果您希望应用程序将有关错误的信息写入日志文件或类似文件中。在异常处理方面有两种思路。第一种说法是捕捉异常是鲁莽的,因为它们表明代码中存在的问题应该得到修复。另

我读了很多关于为什么你不应该看《抛弃》的东西。这不是我要问的,因为这对我来说很明显但实际情况是什么,这样做有意义吗?我到处都能看到,对我来说,这样的代码完全被破坏了


我所能想到的可能只是一个看门狗,它监视一个应用程序并在它崩溃时重新启动它。不确定这是否有意义,但应用程序永远不应该监视异常,包括其自身代码库中的错误,对吗?

一个很好的理由是,如果您希望应用程序将有关错误的信息写入日志文件或类似文件中。

在异常处理方面有两种思路。第一种说法是捕捉异常是鲁莽的,因为它们表明代码中存在的问题应该得到修复。另一种方法是在期望异常时使用异常,或者为了调试,我将以两个设备之间的任何通信为例,因为在这些应用程序中省略catch块可能会因无法控制但可预见的连接问题而导致程序崩溃。我认为合理的建议是,在可以理解和计划的情况下,渔获量块有其位置,确保只捕获可预见的异常,而那些未被解释的异常将导致程序崩溃,并让您知道需要修复的内容。

例如,Checkout
Hystrix
如果您由于HTTP请求而收到错误,则可以重试并回退到该错误,这比仅因HTTP请求而抛出execption要好请求错误。

如果您可以在不中断整个流程的情况下当场处理,为什么不呢?这一切都取决于需求。@Stultuske当然可以,但您显然不想抓住“OutOfMemoryError”之类的东西,把自己放在JVM之上,因为如果您不让它死掉,应用程序在之后将不会健康。至少,我是这么想的。也许您可以将其用于日志记录,但如果发生错误,我的理解是,应用程序必须崩溃。@ernest_k这与此问题完全相反:在某些情况下,捕获错误并继续是合适的。例如:在servlet中,如果由于某个特定请求占用了所有内存而遇到OutOfMemoryError,则可以尝试继续,因为在处理请求后对象将是GC。对于这些情况,听起来更精确的捕获比一般的一次性捕获更合适。