कंप्यूटरप्रोग्रामिंग

जावा: अपवाद और उनके हैंडलिंग

किसी भी कार्यक्रम स्थिरतापूर्वक संचालित होगा केवल तभी स्रोत कोड डिबग है, और कोई स्थिति है कि अप्रत्याशित स्थितियों का कारण बन सकती हैं। संभव विफलताओं को पकड़ने की प्रक्रिया प्रोग्रामिंग मंच पर किया जाता है। ऐसा करने के लिए डेवलपर खाते सब की उम्मीद परिणामों में ले जाता है और त्रुटि के प्रभाव को सीमित करने के इतना है कि यह कार्यक्रम के संचालन में बाधा नहीं कर सकता है, या उसके पतन का कारण प्रयास करता है।

आप अपवाद हैंडलिंग आवश्यकता हो सकती है जब

जावा में, एक अपवाद है, गलत उपयोगकर्ता इनपुट के कारण हो सकता एक संसाधन या अचानक नेटवर्क वियोग कार्यक्रम के लिए कोई जरूरत नहीं। आवेदन डेवलपर द्वारा बनाया सहज उपयोग के लिए, यदि आप आपातकालीन स्थितियों की घटना को नियंत्रित करना चाहिए। उपभोक्ता एक बिना क्रिया का अपवाद है, या एक संदेश का कोई हिस्सा बताते हुए प्रतीत होता है कि कुछ गलत हो गया की वजह से डेटा खोने के लिए एक आवेदन छोड़ने की प्रतीक्षा नहीं करनी चाहिए।

जावा अपवाद हैंडलिंग

क्या विचार करने के लिए? जावा भाषा का अपना निर्मित अपवाद हैंडलिंग कार्यक्षमता है। बेशक, त्रुटि का एक बड़ा प्रतिशत एक और संकलन मंच द्वारा पकड़ा जाता है, सिस्टम स्वचालित रूप से यह अब संभव नहीं है कि उपयोग को सूचित करेंगे। लेकिन वहाँ जो रनटाइम के दौरान होता है अपवाद के इस प्रकार है। डेवलपर एक विशेष तरीके से यह संभाला और एक अन्य शाखा को नियंत्रण सौंप दिया यह अनुमान लगाने के लिए और कोड डिजाइन करने के लिए इतना है कि यह एक त्रुटि का कारण नहीं सक्षम होना चाहिए, और।

जावा में, इस संकलक द्वारा लगाया गया है एक अपवाद को पकड़ने के लिए है, तो विशिष्ट समस्याओं में जाना जाता है और एक मानक व्यायाम पैटर्न है।

ठेठ बहिष्करण

सबसे सरल उदाहरण है, जिसमें आप एक अपवाद प्राप्त कर सकते हैं - इस विभाजन। अपनी सादगी के बावजूद, मामले में, एक भाजक के रूप, शून्य, जो त्रुटि में परिणाम होगा हो सकता है। ठीक है, अगर यह संभव है अतीत के उद्भव का अनुमान है और रोकने के लिए। लेकिन इस विकल्प हमेशा उपलब्ध नहीं है, इसलिए अपवाद को पकड़ने "शून्य से विभाजन" की स्थिति में सीधे आयोजित किया जाना चाहिए।

संसाधन त्रुटि रोकना जावा तंत्र इस तरह दिखता है:

  • ढेर अपवाद वस्तु के रूप में अच्छी तरह से किसी अन्य रूप में, बनाई गई है;
  • कार्यक्रम का स्वाभाविक प्रवाह बाधित होता है;
  • बहिष्कार तंत्र कोड जारी रखने के लिए एक वैकल्पिक तरीका खोजने की कोशिश की है,
  • प्रोसेसर, काम में कार्यक्रम का एक सुरक्षित निष्पादन का पता लगाएं या बहाल, या एक विशेष तरीके से अपवाद की प्राप्ति हो जाएगा।

एक त्रुटि बनाने ऐसा दिखाई दे सकता का सबसे सरल उदाहरण:

यदि (a == नल)

नई NullPointerException फेंक ();

इधर, चर एक आरंभीकरण पर चेक किया जाता है, यानी, है नहीं है कि क्या एक अशक्त वस्तु के संदर्भ में। इस स्थिति उत्पन्न हो गई और विशेष हैंडलिंग की जरूरत है, तो एक अपवाद थ्रो नई NullPointerException से फेंक दिया जाता है ()।

कीवर्ड के बारे में कुछ विवरण

जब अपवाद के साथ काम अक्सर कीवर्ड जावा का उपयोग करने के लिए एक विशेष कार्रवाई का उल्लेख करने के लिए आवश्यक है। अपने पांच प्रोग्रामिंग के लिए इस भाषा:

  • कोशिश करें। यह कीवर्ड है पहले से ही मुलाकात की, और यह कोड का एक वर्ग है कि एक अपवाद फेंक कर सकते हैं में एक संक्रमण का मतलब है। ब्लॉक सीमित ब्रेसिज़ {}।
  • पकड़ने। यह वांछित अपवाद प्रकार को बीच में रोक और यह उचित रूप से निपटने।
  • अंत में। यह कीवर्ड वैकल्पिक है और कोड है, जो वैसे भी आवश्यक है की एक निश्चित टुकड़ा प्रदर्शन करने के लिए प्रयोग किया जाता है, भले ही कोई अपवाद नहीं पकड़ा नहीं है। सीधे कोशिश ब्लॉक के बाद जोड़ा गया।
  • फेंक - आप कहीं से भी जावा अपवाद बना सकते हैं।
  • फेंकता - कोई कीवर्ड विधि हस्ताक्षर में रखा गया है। इसका मतलब है कि निम्नलिखित कोड इस प्रकार जावा के एक अपवाद फेंक कर सकते हैं। विधि उसके बारे में अपेक्षा के अनुरूप काम नहीं कर सकते हैं - यह निशान डेवलपर्स की जरूरत है कि ध्यान में रखा जाना करने के लिए के लिए एक संकेत के रूप में कार्य करता है।

एक कोशिश के साथ पकड़ने

जावा अपवाद को रिलीज, स्वाभाविक रूप से मान लिया गया है कि यह एक विशेष तरीके से नियंत्रित किया जाएगा। सबसे सुविधाजनक तरीका है यह करने के लिए, अगर कोड खंड एक ब्लॉक में बंद fenced है। कौन सा एक अपवाद हो सकती है। जब आप इस कोड को चलाने के लिए, आभासी मशीन, एक अप्रत्याशित स्थिति मिलेगा समझने के लिए एक महत्वपूर्ण ब्लॉक है कि वहाँ और स्थानान्तरण प्रसंस्करण के साथ स्टेशन के लिए नियंत्रित करते हैं।

जावा कोड एक विशेष खंड की कोशिश है, जो भीतर एक अपवाद हो सकती में लपेटा जाता है। इस प्रकार, वह कई अप्रत्याशित स्थितियों है कि एक ही जगह है, नहीं raspolzayas कोड में पकड़ा हो जाएगा रखा।

प्रोसेसिंग यूनिट के लिए सबसे विशिष्ट कोड इस प्रकार है:

try {

// यहाँ कुछ कोड है कि एक अपवाद उत्पन्न हो सकता है है

} पकड़ने (Tip_isklyucheniya_1 identifikator_1) {

// यहाँ वहाँ अपवाद हैंडलिंग है, उसके प्रकार और शर्तों के अनुसार;

} पकड़ने (Tip_isklyucheniya_2 identifikator_2) {

// यहाँ वहाँ अपवाद हैंडलिंग है, उसके प्रकार और शर्तों के अनुसार;

}

कीवर्ड पकड़ कि कोड रिपोर्ट करती है, और एक अपवाद के लिए इसे स्कैन, जैसा कि नीचे वर्णित इलाज किया जा सकता है, बशर्ते कि वह अपने प्रकार के अनुरूप है। पहचानकर्ता तर्कों के रूप कोड ब्लॉक के प्रसंस्करण में इस्तेमाल किया जा सकता।

अंत में

के रूप में यह पिछले अध्याय से स्पष्ट हो गया, पकड़ ब्लॉक अपवादों को पकड़ने और उन्हें प्रोसेस। लेकिन बहुत बार स्थिति उत्पन्न होती है जहां कुछ कोड, चाहे वे गलतियों पकड़े गए थे की परवाह किए बिना चलाने चाहिए। इस के लिए वहाँ कीवर्ड अंत में है। यह विभिन्न काउंटरों के मूल्यों को बढ़ाने के लिए, फ़ाइलों या नेटवर्क कनेक्शन को बंद करने के लिए इस्तेमाल किया जाता है।

यह भूखंड कई कैच ब्लॉक का आविष्कार किया तरीकों अपवाद को पकड़ने के प्रस्तुत करता है। उदाहरण के लिए, कोड की कोशिश में निहित शीत के रूप में इस तरह के एक अप्रत्याशित स्थिति उत्पन्न करता है। फिर, सांत्वना अभिव्यक्ति «ठंड पकड़ा!» प्रदर्शित किया जाएगा और «कि के बारे में? खुश करने के लिए कुछ है»। यही कारण है, अंत में ब्लॉक किसी भी मामले में निष्पादित किया जाता है।

वास्तव में, एक तरह से अंत में वहाँ ट्रिगर से बचने के लिए। यह आभासी मशीन के पूरा होने के साथ जुड़ा हुआ है। यह कैसे लागू करने के लिए मिल जाए, यह इंटरनेट खुली जगह पर संभव है।

फेंक कीवर्ड

फेंक एक अपवाद उत्पन्न करता है। इसके वाक्य रचना इस प्रकार है:

नई NewException फेंक ();

प्रकार NewException के लिए एक नया अपवाद रहे बनाई गई है ()। एक प्रकार इस्तेमाल किया जा सकता पहले से ही मानक जावा पुस्तकालय कक्षाओं में शामिल किया गया है और पहले से अपने स्वयं के उत्पादन के डेवलपर द्वारा परिभाषित है।

इस डिजाइन किसी भी विधि का वर्णन है, जो कॉल तो कोशिश ब्लॉक के भीतर होने चाहिए, ताकि इसे रोकने के लिए सक्षम होना में का हिस्सा है।

कीवर्ड फेंकता

क्या एक स्थिति है जहाँ विधि एक अपवाद फेंक सकते हैं, लेकिन ठीक से संभाल नहीं कर पा रहे के विकास की प्रक्रिया में है। इस उद्देश्य के लिए विधि हस्ताक्षर में निर्दिष्ट करता है शब्द फेंकता है और संभव अपवाद के प्रकार।

इस लेबल ग्राहक डेवलपर्स के लिए सूचक की तरह है कि विधि उनकी एक ही अपवाद को संभालने में सक्षम नहीं है। इसके अलावा, यदि त्रुटि प्रकार की जाँच की है, तो संकलक स्पष्ट रूप से बाध्य करेगा यह मांग करते हैं।

संसाधनों की कोशिश करें

जावा संस्करण 7 डेवलपर्स संसाधनों के साथ एक उपचार कोशिश ब्लॉक के रूप में एक प्रमुख नवाचार, शामिल किया है।

कई वस्तुओं, जावा में बनाई गई हैं के बाद उपयोग को बंद कर दिया जाना चाहिए संसाधनों के संरक्षण के। पहले यह समय इसे ध्यान में और इन उदाहरणों मैन्युअल बंद करना पड़ा। अब, तथापि, वे AutoClosable इंटरफ़ेस दिखाई दिया। यह स्वचालित रूप से पहले से ही इस्तेमाल किया वस्तुओं एक कोशिश ब्लॉक में रखा बंद करने के लिए मदद करता है। इस दृष्टिकोण के माध्यम से उस में इसकी पठनीयता में काफी वृद्धि हुई है कोड लिखने के लिए और अधिक सुविधाजनक हो गया है।

खुद की कक्षाओं जावा अपवाद

वर्णित प्रोग्रामिंग भाषा के रचनाकारों आपात स्थिति के डिजाइन प्रकार के खाते कई पहलुओं में ले लिया। हालांकि, घटनाओं के परिणाम से काम नहीं चलेगा, इसलिए में जावा अपने स्वयं के अपवाद को परिभाषित करने की क्षमता लागू को रोकने के लिए सभी विकल्प है, यह विशेष रूप से कोड की जरूरतों के लिए उपयुक्त है।

सबसे आसान तरीका है बनाने के लिए - वस्तु संदर्भ के लिए सबसे उपयुक्त से प्राप्त करना।

वहाँ, अपवाद से विरासत को क्या हुआ वर्ग है कि अपनी खुद की अपवादों को परिभाषित करने के लिए किया जाता है। एक डिफ़ॉल्ट, दूसरा - - तर्क संदेश प्रकार स्ट्रिंग के साथ MyException में दो कंस्ट्रक्टर्स है।

फिर, सार्वजनिक कक्षा FullConstructors कार्यान्वित विधि च, जो हस्ताक्षर है में MyException फेंकता है। यह कीवर्ड का मतलब है कि च जावा MyException अपवाद की तरह फेंक कर सकते हैं। इसके अलावा, विधि शरीर में सांत्वना ही है और वास्तविक पीढ़ी MyException, फेंक द्वारा करने के लिए पाठ जानकारी उत्पादन का उत्पादन किया।

दूसरी विधि पहले एक है कि जब आप एक अपवाद बनाने के लिए, यह एक स्ट्रिंग पैरामीटर पारित कर दिया है, जो पकड़ने पर कंसोल में दिखाई तरीके से कुछ अलग है। मुख्य रूप से यह स्पष्ट है कि च () और ग्राम () एक कोशिश की जाँच में रखा जाता है और कीवर्ड पकड़ MyException पर कब्जा करने के लिए कॉन्फ़िगर। प्रसंस्करण का परिणाम कंसोल के लिए एक त्रुटि संदेश प्रदर्शित करने के लिए है:

इस प्रकार यह जावा अपवाद जोड़ने के लिए, अपने ही हाथ से आया था।

वास्तुकला अपवाद

जावा में सभी वस्तुओं के साथ के रूप में, अपवाद भी विरासत में मिला और एक सौपानिक संरचना होती है। इस प्रोग्रामिंग भाषा में फेंक दिया सभी त्रुटियों का मूल तत्व वर्ग java.lang.Throwable है। उसे दो प्रकार से विरासत में मिली - त्रुटि और अपवाद।

त्रुटि - गंभीर समस्या के संकेत है और अनियंत्रित जावा अपवाद है। अवरोधन और ज्यादातर मामलों में इस तरह के डेटा प्रसंस्करण डिजाइन के स्तर पर होता है और अंतिम आवेदन कोड में शुरू करने की जरूरत होती नहीं।

सबसे अधिक इस्तेमाल किया बनाने और अपवादों विश्लेषण करने के लिए वर्ग अपवाद नहीं है। जो, बारी में, RuntimeException सहित कई शाखाओं, में विभाजित है। द्वारा RuntimeException क्रम अपवाद भी कार्यक्रम के दौरान होने वाली हैं, जो है। यह से ली गई सभी वर्गों से संदिग्ध है।

अक्सर अपवाद हैं

जावा अपवाद में, जो की सूची के नीचे प्रस्तुत किया जाता है, सबसे अधिक बार उपयोग किया जाता है, ताकि आप विस्तार से उनमें से प्रत्येक का वर्णन करना चाहिए:

  • ArithmeticException। ये अंकगणितीय आपरेशनों के साथ जुड़े त्रुटियाँ शामिल हैं। सबसे स्पष्ट उदाहरण - शून्य से भाग।
  • ArrayIndexOutOfBoundsException - सरणी तत्व संख्या कि इसकी लंबाई के योग से अधिक के लिए एक अपील।
  • ArrayStoreException - सरणी के एक असंगत तत्व प्रकार आवंटित करने के लिए प्रयास करते हैं।
  • ClassCastException - दूसरे के लिए गलत एक प्रकार लाने के लिए एक प्रयास।
  • IllegalArgumentException - विधि कॉल में गलत तर्क का उपयोग।
  • NegativeArraySizeException - एक अपवाद जब आप नकारात्मक आकार की एक सरणी पैदा करते हैं।
  • NullPointerException - सन्दर्भों के दुरुपयोग को शून्य पर।
  • NumberFormatException - तब होता है पूर्णांक एक गलत स्ट्रिंग रूपांतरण प्राप्त हो सकता।
  • UnsupportedOperationException - ऑपरेशन समर्थित नहीं है।

इन उदाहरणों अनियंत्रित जावा अपवाद के प्रकार प्रतिनिधित्व करते हैं। लेकिन अभी जाँच की देखो:

  • ClassNotFoundException - कक्षा नहीं मिला।
  • IllegalAcccessException - वर्ग तक पहुंच को रोकना।
  • InterruptedException - प्रवाह में रुकावट।
  • NoSuchFieldException - कोई आवश्यक फ़ील्ड है।

अपवाद की व्याख्या

अक्सर सामना करना पड़ा अपवादों की बात हो रही ध्यान दिया जाना चाहिए कि डिजाइन में उनकी व्याख्या, गलत तरीके से माना जा सकता है। अगला एक छोटी और अधिक विस्तार, जहां एक अनपेक्षित स्थिति हो सकती है में समझा सूची है।

NullPointerException। बहुत पहले मामला है जब एक अपवाद है वहाँ, एक वस्तु है कि रिक्त के बराबर है के लिए एक संदर्भ के लिए अपील करने के लिए है। यह भी शून्य वर्ग उदाहरण तरीकों की फैली हुई है। NullPointerException एक समान लंबाई अशक्त सरणी प्राप्त करने के मामले में फेंक दिया जा सकता है। समय-समय पर नल पर साइटों की जाँच करेगा ऐसी स्थितियों से बचने के लिए।

ArrayIndexOutOfBoundsException। किसी भी कार्यक्रम एरे के प्रयोग बिना नहीं हो सकता। तदनुसार, लगातार सहारा इसे करने के लिए पैदा करते हैं और त्रुटि कर सकते हैं। अपवाद तब होता है जब एक डेवलपर एक सरणी तत्व यह है कि सूचकांक सूची में नहीं है का उपयोग करने की कोशिश करता है। उदाहरण के लिए, का अनुरोध मूल्य से ऊपर या शून्य लंबाई कम है। अक्सर तथ्य सरणी में शून्य के स्कोर के साथ शुरू होता है का परिणाम है।

निष्कर्ष

जावा अपवाद हैंडलिंग - एक शक्तिशाली उपकरण वातावरण है, जो बहुत प्रोग्रामर के काम की सुविधा है और उसे एक स्वच्छ और कोड त्रुटियों से रहित बनाने के लिए अनुमति देता है। कैसे चिकनी और स्थिर कामकाज आवेदन पर स्थिति और डेवलपर की ख्याति पर निर्भर करता है।

बेशक, एक कम या ज्यादा सरल कार्यक्रमों में असामान्य स्थितियों बहुत आसान पता लगाने के लिए। लेकिन कुछ ही लाख लाइनों के लिए बड़े स्वचालित परिसरों में यह केवल लंबी अवधि के परीक्षण और डीबगिंग के परिणाम के रूप में संभव है।

जावा अपवाद त्रुटि है जहाँ से आप कुछ अनुप्रयोगों में उत्पन्न होती हैं के लिए, कुछ कंपनियों के एक इनाम की पेशकश जब वे उत्साही हैं। विशेष रूप से उन है कि सुरक्षा नीति सॉफ्टवेयर का उल्लंघन का कारण द्वारा की सराहना की।

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 hi.delachieve.com. Theme powered by WordPress.