0

私のちょっとしたJavaの知識によると、プログラムは実行時例外をスローした後に終了するはずです。

しかし、ランタイム例外をスローした後のアプリケーションでは終了しません。Linuxで実行しているため、ctrl + cを使用して終了する必要があります。それ以外の場合は終了しません。

Windows システムで jar を作成し、それを Linux にコピーして貼り付けます。

また、アプリケーションでロギングを有効にしています。

更新: 例外をキャッチしていません。マルチスレッドは使用されていません。

4

1 に答える 1

15

A RuntimeException(またはany ExceptionまたはThrowable) は、必ずしもアプリケーションを終了させるわけではありません。

唯一の非デーモン スレッドスローされ、処理されない場合にのみ、アプリケーションを終了します。

つまり、別の非デーモン スレッドが実行されている場合、または例外をキャッチした場合、アプリケーションは終了しません。

私からのこの最近の回答は、何が起こるかの要約を示しています(具体的には についてOutOfMemoryErrorですが、考え方は同じです)。

于 2011-10-03T13:18:37.163 に答える