जैसा कि आप उम्मीद करेंगे, लॉक सामान्य रूप से जारी किया जाता है।
संदर्भ के लिए, जो इस व्यवहार की गारंटी देता है JLS के उपयुक्त अनुभाग § 14.19 है:
ब्लॉक के निष्पादन सामान्य रूप से पूरा करता है, तो लॉक अनलॉक हो और सिंक्रनाइज़ बयान सामान्य रूप से पूरा करती है। यदि किसी भी कारण से ब्लॉक का निष्पादन अचानक समाप्त हो जाता है, तो लॉक अनलॉक हो जाता है और सिंक्रनाइज़ कथन उसी कारण से अचानक समाप्त हो जाता है।
('अचानक पूरा होने' कहीं JLS में परिभाषित किया गया है JVM से अपवाद हैं, throw
द्वारा उठाए गए अपवाद हैं, और break
, continue
, या return
बयान के उपयोग ब्लॉक के बाहर स्थानांतरण करने के लिए शामिल करने के लिए।)
+ 1 सबूत देने के लिए, कभी-कभी अपवाद अपवाद नहीं है :-)) –
@KLE त्रुटि के बारे में क्या? अगर कोड स्टैक ओवरफ्लो या आउटऑफमेमरी फेंकता है तो क्या होता है? – Pacerier
[यह पृष्ठ] (http://www.jguru.com/faq/view.jsp?EID=245377) एक एफआईआई देखने के लायक है। –