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

python - Strange behavior using PyQt4's 'pyqtSlot' decorator before another decorator -

c# - UnhandledExceptionMode.ThrowException for AppDomain.UnhandledException -

c# - Process.Kill() returns access denied -