14,21 से। पहुंचने योग्य वक्तव्य
यदि कोई कथन निष्पादित नहीं किया जा सकता है तो यह एक संकलित-समय त्रुटि है क्योंकि यह पहुंच योग्य नहीं है।
यह अनुभाग शब्द "पहुंच योग्य" के सटीक स्पष्टीकरण के लिए समर्पित है। विचार यह है कि कुछ संभावित निष्पादन कन्स्ट्रक्टर, विधि, उदाहरण प्रारंभकर्ता, या स्थैतिक प्रारंभकर्ता की शुरुआत से पथ होना चाहिए जिसमें कथन का विवरण शामिल है। विश्लेषण कथन की संरचना को ध्यान में रखता है। जबकि, बयान के विशेष उपचार के अलावा, जिनकी हालत अभिव्यक्ति निरंतर मान सही है, अभिव्यक्ति के मूल्य प्रवाह विश्लेषण में ध्यान में नहीं रखे जाते हैं।
उदाहरण के लिए, एक जावा कोड को स्वीकार करेंगे:
{ पूर्णांक एन = 5; जबकि (एन> 7) के = 2; } भले ही एन का मान संकलन समय पर ज्ञात है और सिद्धांत रूप में इसे संकलित समय पर जाना जा सकता है कि के लिए असाइनमेंट कभी निष्पादित नहीं किया जा सकता है।
इस खंड में नियमों को परिभाषित दो तकनीकी शब्दों:
कि क्या एक बयान से पहुंचा जा सकता
है कि क्या एक कथन को पूरा कर सकते हैं सामान्य रूप से
यहाँ परिभाषाएँ एक बयान सामान्य रूप से पूरा करने के लिए केवल यह अगर अनुमति देते हैं पहुंच योग्य है
नियमों के विवरण को कम करने के लिए, पारंपरिक संक्षेप "iff" का अर्थ "अगर और केवल अगर" है।
एक पहुंच योग्य तोड़ बयान, अगर एक बयान बाहर निकालता तोड़ लक्ष्य के भीतर, या तो वहाँ कोई कोशिश बयान जिसका कोशिश ब्लॉक तोड़ वक्तव्य होना, या देखते हैं बयानों जिसका ब्लॉक की कोशिश तोड़ बयान और सभी अंत में शामिल करने की कोशिश कर रहे हैं उन लोगों के खंड कथन सामान्य रूप से पूरा कर सकते हैं।
यह परिभाषा §14.15 में " नियंत्रण स्थानांतरित करने के प्रयासों" के आसपास तर्क पर आधारित है।
एक बयान जारी रखने के लिए एक करते बयान जारी रहता है, भीतर बयान करते हैं, या तो वहाँ कोई कोशिश बयान जिसका कोशिश ब्लॉक शामिल बयान जारी रखने के लिए कर रहे हैं, या वहाँ बयान जिसका ब्लॉक की कोशिश जारी रखने के बयान और सभी अंत में शामिल करने की कोशिश कर रहे हैं उन लोगों के खंड कथन सामान्य रूप से पूरा कर सकते हैं।
ब्लॉक एक निर्माता, विधि, उदाहरण के प्रारंभकर्ता, या स्थिर प्रारंभकर्ता के शरीर है कि पहुंचा जा सकता है:
नियम इस प्रकार हैं।
एक खाली ब्लॉक जो स्विच ब्लॉक नहीं है सामान्य रूप से पूरा हो सकता है अगर यह पहुंच योग्य है।
एक गैर-खाली ब्लॉक जो स्विच ब्लॉक नहीं है सामान्य रूप से iff सामान्य विवरण पूरा कर सकता है।
एक गैर-खाली ब्लॉक में पहला कथन जो स्विच ब्लॉक नहीं है पहुंच योग्य है अगर ब्लॉक पहुंच योग्य है।
प्रत्येक अन्य कथन एक गैर-खाली ब्लॉक में स्विच जो स्विच नहीं है ब्लॉक पहुंच योग्य है अगर एस से पहले कथन सामान्य रूप से पूरा कर सकता है।
स्थानीय वर्ग घोषणा विवरण सामान्य रूप से पूरा हो सकता है अगर यह पहुंच योग्य है।
स्थानीय परिवर्तनीय घोषणा विवरण सामान्य रूप से पूरा हो सकता है अगर यह पहुंच योग्य है।
एक खाली कथन सामान्य रूप से पूरा हो सकता है अगर यह पहुंच योग्य है।
एक लेबल बयान सामान्य रूप से पूरा कर सकते हैं, तो निम्न में से कम से कम एक सत्य है:
निहित बयान सामान्य रूप से पूरा कर सकते हैं।
एक पहुंच योग्य ब्रेक स्टेटमेंट है जो लेबल किए गए बयान से बाहर निकलता है।
निहित कथन पहुंच योग्य है अगर लेबल किए गए कथन पहुंच योग्य है।
एक अभिव्यक्ति कथन सामान्य रूप से पूरा हो सकता है अगर यह पहुंच योग्य है।
एक if-then कथन सामान्य रूप से पूरा हो सकता है अगर यह पहुंच योग्य है।
तब-कथन पहुंच योग्य है अगर if-then कथन पहुंच योग्य है।
एक if-then-else कथन सामान्य रूप से पूरा हो सकता है अगर तत्कालीन कथन सामान्य रूप से पूरा हो सकता है या अन्य-कथन सामान्य रूप से पूरा हो सकता है।
तब-कथन पहुंच योग्य है अगर if-then-else कथन पहुंच योग्य है।
अन्य-स्टेटमेंट पहुंच योग्य है अगर if-then-else कथन पहुंच योग्य है।
यदि कोई कथन है, तो यह एक और हिस्सा है, बल्कि असामान्य है। इस खंड के अंत में तर्क दिया गया है।
एक जोरदार विवरण सामान्य रूप से पूरा हो सकता है अगर यह पहुंच योग्य है।
एक स्विच बयान सामान्य रूप से कम से कम एक निम्नलिखित iff पूरा कर सकते हैं सही है:
स्विच ब्लॉक खाली है या होता है केवल लेबल स्विच करें।
स्विच ब्लॉक में अंतिम विवरण सामान्य रूप से पूरा हो सकता है।
अंतिम स्विच ब्लॉक कथन समूह के बाद कम से कम एक स्विच लेबल है।
स्विच ब्लॉक में डिफ़ॉल्ट लेबल नहीं है।
एक पहुंच योग्य ब्रेक स्टेटमेंट है जो स्विच स्टेटमेंट से बाहर निकलता है।
एक स्विच ब्लॉक पहुंच योग्य है अगर इसका स्विच स्टेटमेंट पहुंच योग्य है।
यह एक मामले या डिफ़ॉल्ट लेबल भालू: iff अपने स्विच बयान पहुंचा जा सकता है और निम्न में से कम से कम एक सच है
एक स्विच ब्लॉक में एक बयान पहुंचा जा सकता है।
स्विच ब्लॉक में इससे पहले एक बयान है और पूर्ववर्ती कथन सामान्य रूप से पूरा हो सकता है।
कुछ समय बयान सामान्य रूप से पूरा कर सकते हैं आईएफएफ निम्न में से कम से कम एक सत्य है:
जबकि बयान पहुंचा जा सकता है और हालत अभिव्यक्ति एक निरंतर अभिव्यक्ति (§15.28) सही मूल्य के साथ नहीं है।
एक पहुंच योग्य ब्रेक स्टेटमेंट है जो वक्तव्य से बाहर निकलता है।
निहित कथन पहुंच योग्य है अगर समय बयान पहुंच योग्य है और स्थिति अभिव्यक्ति निरंतर अभिव्यक्ति नहीं है जिसका मूल्य गलत है।
निहित बयान सामान्य रूप से पूरा कर सकते हैं और हालत अभिव्यक्ति एक निरंतर अभिव्यक्ति (§15.28) सही मूल्य के साथ नहीं है:
एक बयान सामान्य रूप से की निम्नलिखित सच है कम से कम एक iff को पूरा कर सकता है।
बयान एक पहुंच योग्य नहीं लेबल के साथ बयान जारी रखने के लिए शामिल करते हैं, और बयान कर अंतरतम जबकि है, करते हैं, या बयान के लिए होता है, जो कि बयान जारी है, और बयान जारी रखने के लिए जारी है कि बयान करते हैं, और हालत अभिव्यक्ति मान सत्य के साथ निरंतर अभिव्यक्ति नहीं है।
बयान एक पहुंच योग्य एक लेबल एल के साथ बयान जारी रखने के लिए शामिल करते हैं, और बयान कर लेबल एल है, और बयान ऐसा बयान जारी है जारी है, और हालत अभिव्यक्ति सही मूल्य के साथ एक निरंतर अभिव्यक्ति नहीं है।
एक पहुंच योग्य ब्रेक स्टेटमेंट है जो डू कथन से बाहर निकलता है।
निहित कथन पहुंच योग्य है अगर डू कथन पहुंच योग्य है।
बयान के लिए एक बुनियादी सामान्य रूप से पूरा कर सकते हैं iff निम्न में से कम से कम एक सत्य है:
बयान के लिए पहुंचा जा सकता है, वहाँ एक शर्त अभिव्यक्ति है, और हालत अभिव्यक्ति एक निरंतर अभिव्यक्ति (§ नहीं है 15.28) के साथ मूल्य सही है।
एक पहुंच योग्य ब्रेक स्टेटमेंट है जो कथन के लिए बाहर निकलता है।
निहित कथन पहुंच योग्य है अगर कथन के लिए पहुंच योग्य है और स्थिति अभिव्यक्ति निरंतर अभिव्यक्ति नहीं है जिसका मूल्य गलत है।
कथन के लिए एक बढ़ाया सामान्य रूप से पूरा हो सकता है अगर यह पहुंच योग्य है।
एक ब्रेक, जारी, वापसी, या फेंक स्टेटमेंट सामान्य रूप से पूरा नहीं कर सकता है।
एक सिंक्रनाइज़ कथन सामान्य रूप से पूरा हो सकता है अगर कथन सामान्य रूप से पूरा हो सकता है।
निहित कथन पहुंच योग्य है अगर सिंक्रनाइज़ कथन पहुंच योग्य है।
एक कोशिश बयान निम्न दोनों iff सामान्य रूप से पूरा कर सकते हैं सत्य हैं:
कोशिश ब्लॉक सामान्य रूप से पूरा कर सकते हैं या किसी कैच ब्लॉक सामान्य रूप से पूरा कर सकते हैं।
यदि प्रयास कथन में आखिरकार ब्लॉक है, तो आखिरकार ब्लॉक सामान्य रूप से पूर्ण हो सकता है।
प्रयास ब्लॉक पहुंचने योग्य है अगर प्रयास कथन पहुंच योग्य है।
एक कैच ब्लॉक सी पहुंचा जा सकता है iff निम्न में से दोनों सही हैं:
या तो सी पैरामीटर के प्रकार के एक अनियंत्रित अपवाद प्रकार या फेंकने योग्य है; या कोशिश ब्लॉक में कुछ अभिव्यक्ति या फेंक बयान पहुंचा जा सकता है और एक जाँच अपवाद जिसका प्रकार आबंटित पकड़ खंड सी के पैरामीटर के लिए है
कोई व्यंजक अंतरतम बयान युक्त यह पहुंचा जा सकता है iff पहुंचा जा सकता है फेंक कर सकते हैं ।
सामान्य और अचानक अभिव्यक्तियों के पूर्ण होने के लिए §15.6 देखें।
कोशिश संख्या में पहले कैच ब्लॉक ए नहीं है जैसे कि सी का पैरामीटर टाइप ए के पैरामीटर के प्रकार के उप-वर्ग के समान है।
कैच ब्लॉक का ब्लॉक पहुंचने योग्य है अगर कैच ब्लॉक पहुंच योग्य है।
यदि अंततः ब्लॉक मौजूद है, तो यह पहुंच योग्य है अगर प्रयास कथन पहुंच योग्य है।
जावा भाषा विशिष्टता का उत्तर है: [पहुंचने योग्य वक्तव्य] (http://docs.oracle.com/javase/specs/jls/se7/html/jls-14.html#jls-14.21) – Christian
@ गिननाड, आप केवल z = 2 तोड़ें, जो यह नहीं है। (प्रश्न बदल दिया गया हो सकता है) – Holloway