0

根据我的一点点 java 知识,程序应该在抛出运行时异常后终止。

但是在我的应用程序中抛出运行时异常后它并没有终止,当我在 linux 上执行它时,我必须使用ctrl+c来终止它,否则它不会终止。

我在 Windows 系统上创建 jar 并将其复制粘贴到 linux 中。

我还在我的应用程序中启用了日志记录。

更新: 我没有发现任何异常没有使用多线程。

4

1 回答 1

15

A RuntimeException(或任何 Exceptionor Throwable不一定会终止您的应用程序。

如果它被抛出在唯一的非守护线程上并且没有被处理,它只会终止您的应用程序。

这意味着如果另一个非守护线程正在运行或者您捕获了异常,应用程序将不会被终止。

我最近的这个回答总结了发生的事情(特别是关于 a OutOfMemoryError,但想法是一样的)。

于 2011-10-03T13:18:37.163 回答