Java 一个线程中的异常/错误会停止整个应用程序吗?

Java 一个线程中的异常/错误会停止整个应用程序吗?,java,multithreading,exception,error-handling,Java,Multithreading,Exception,Error Handling,如果在一个线程(不是主线程)中抛出一个错误/验证,这会停止整个应用程序吗 有这种可能性吗?或者这会停止它运行的线程吗 如果在一个线程(不是主线程)中抛出一个错误/验证,这会停止整个应用程序吗 如果它导致唯一的非守护进程线程从run() 如果有其他非守护进程线程正在运行,或者捕获并处理了异常或错误,则应用程序将继续运行 这会停止正在运行的线程吗 如果捕获并处理了异常或错误,它可能不会停止任何线程。除了Peter Lawrey的回答,还有一种情况是,未经处理的异常可能导致应用程序冻结:如果死线程已获

如果在一个线程(不是主线程)中抛出一个错误/验证,这会停止整个应用程序吗

有这种可能性吗?或者这会停止它运行的线程吗

如果在一个线程(不是主线程)中抛出一个错误/验证,这会停止整个应用程序吗

如果它导致唯一的非守护进程线程从
run()

如果有其他非守护进程线程正在运行,或者捕获并处理了异常或错误,则应用程序将继续运行

这会停止正在运行的线程吗


如果捕获并处理了异常或错误,它可能不会停止任何线程。

除了Peter Lawrey的回答,还有一种情况是,未经处理的异常可能导致应用程序冻结:如果死线程已获取程序其他线程所需的锁。

是的-这取决于“暂停”的含义-进程关闭或进程线程死锁。如果应用程序的编码正确,则应释放资源锁。如果不正确地释放锁,则可能是错误的根源,在这种情况下,很可能会导致更多问题。;)thx:)那么典型的线程是非守护进程类型?我必须把一个线程变成一个守护进程?好吧,你不能在线程启动后改变它是否是守护进程。您可以作为守护进程启动新线程。主线程在任何方面都是特殊的吗?如果有两个线程在运行,并且主线程中抛出未处理的异常,会发生什么情况?@peter如果非守护进程抛出该线程未处理的runtimeException..那么程序应该停止执行其他线程(主线程)?@saurabh如果唯一的非守护进程线程抛出未处理的错误或异常,停止该线程,那么它将关闭进程。i、 错误或异常最多只能停止一个线程,但如果这是最后一个非守护进程线程,它可以关闭程序。这是否回答了您的问题?