我一直试图了解JVM如何处理RMI远程方法中的运行时异常。我有一个远程方法,包含以下两种方法:
doSomething(
print "doSomething thread id " + Thread.currentThread.getId()
)
fail(){
print "fail thread id " + Thread.currentThread.getId()
throw new RunTimeException
}
我看到的行为是,即使调用了fail()方法,抛出运行时异常的线程仍然没有终止。示例输出为:
fail thread id 16
stacktrace
...
doSomething thread id 16
doSomething thread id 16
答案 0 :(得分:0)
发现异常。调用者将获得一个ServerException,其中嵌入了RuntimeException作为原因。执行线程不会死。