让我们说我在方法中有这段代码:
...
synchronized (this) {
this.var = value;
}
...
是否存在任何使synchronized
块抛出异常(假设this
,var
和value
具有非null
值)的情况?
谢谢!
答案 0 :(得分:1)
根据Java Language Specification about the synchronized statement:
执行线程锁定与V关联的监视器。然后执行块[...]
解释如何使用上述监视器的Java virtual Machine Specification on Synchronization仅讨论了在synchronized块中抛出的异常。因此,synchronized
语句本身不允许抛出异常。
因此,在您的情况下不会出现抛出异常的任何情况。