java - Variable not initialized in try catch block `finally` -


क्यों कंपाइलर समझता है कि चर को या तो try या < कोड> पकड़ो ब्लॉक और अंततः ब्लॉक पर शिकायतें?

  int i; कोशिश {i = 0; } पकड़ (अपवाद ई) {i = 2; } अंत में {System.out (i); }  

यदि आप आरंभीकरण से पहले ब्लॉक में 'i' को प्रिंट करते हैं, तो यह त्रुटि देता है क्योंकि कंपाइलर सोचता है कि 'आई' का प्रयास ब्लॉक में सेट करने से पहले एक अपवाद फेंका जा सकता है, इस मामले में 'आई' का प्रारंभ नहीं होता, इसलिए अंत में यहां यह मामला है जब आप अंत में 'आई' को प्रिंट करते हैं तो संकलक को लगता है कि 'आई' को कैल ब्लॉक में सेट करने से पहले एक अपवाद फेंका जा सकता है, इस मामले में 'आई' को आरम्भ नहीं किया जाता है

संकलक यह नहीं समझता है कि चर या तो कोशिश या पकड़ ब्लॉक। कंपाइलर शिकायत करता है क्योंकि स्थानीय चर को एक ही समय में घोषित और आरम्भ किया जाना चाहिए, लेकिन आपने इसे अभी घोषित किया है। यदि आप इसका उपयोग किसी भी ब्लॉक (प्रारंभ, पकड़ने, अंत में) में करते हैं, तो इसके बारे में बिना शिकायत की शिकायत करते हैं। इसे आज़माएं:

  int i; Try {system.out.println (i); // I = 0; } पकड़ (अपवाद ई) {System.out.println (i); // I = 2; } अंत में {System.out.println (i); }  

Comments

Popular posts from this blog

c# - SignalR: "Protocol error: Unknown transport." when navigating to hub -

c# - WPF Expander overlay used in ItemsControl -

class - Kivy: how to instantiate a dynamic classes in python -