简单的Java synchronized块可以抛出异常吗?

时间:2017-07-06 08:29:31

标签: java synchronized

让我们说我在方法中有这段代码:

...
synchronized (this) {
    this.var = value;
}
...

是否存在任何使synchronized块抛出异常(假设thisvarvalue具有非null值)的情况?

谢谢!

1 个答案:

答案 0 :(得分:1)

根据Java Language Specification about the synchronized statement

  

执行线程锁定与V关联的监视器。然后执行块[...]

解释如何使用上述监视器的Java virtual Machine Specification on Synchronization仅讨论了在synchronized块中抛出的异常。因此,synchronized语句本身不允许抛出异常。

因此,在您的情况下不会出现抛出异常的任何情况。