अपवाद आणि त्रुटी दरम्यान फरक

Anonim

अपवाद बनाम त्रुटी

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

अपवाद म्हणजे काय?

अपवाद हा एक इव्हेंट आहे, जो सामान्य प्रोग्राम प्रवाहास अडथळा आणू शकतो. नाव अपवाद "अपवादात्मक घटना" येते. अपवाद फेकणे अपवाद ऑब्जेक्ट तयार करणे आणि रनटाइम प्रणालीवर तो बंद करण्याची प्रक्रिया आहे अपवाद उद्भवलेल्या पद्धतीने अपवाद ऑब्जेक्ट बनविला जातो. अपवाद ऑब्जेक्टमध्ये उपयुक्त माहिती जसे अपवाद आणि प्रकारचे वर्णन समाविष्ट आहे. जेव्हा रनटाइम सिस्टम अपवाद ऑब्जेक्ट प्राप्त करते, तेव्हा तो तिला कॉल स्टॅकच्या आत रिव्हर्स ऑर्डर (ज्यामध्ये पद्धती म्हटले होते) मध्ये सरकवून कोणीतरी हाताळण्याचा प्रयत्न करेल. कॉल स्टॅक पद्धतींचा क्रमवार सूची आहे, ज्यास अपवाद आल्याच्या पध्दती आधी म्हटले गेले होते. रनटाइम सिस्टम यशस्वी आहे जर एखाद्या अपवाद हाताळणीसह एक पद्धत सापडली तर अपवाद हँडलर हा कोडचा एक ब्लॉक आहे जो औपचारिकरित्या उदरी अपवाद हाताळू शकतो. रनटाइम प्रणालीला योग्य हॅंडलर आढळल्यास (ii प्रकार अपवाद प्रकार हाताळला जाऊ शकतो अशा प्रकाराशी जुळतो), तो हँडलरला अपवाद ऑब्जेक्ट देईल याला अपवाद पकडण्यासाठी म्हणतात. तथापि, अपवाद हाताळला जाऊ शकत नाही, तर कार्यक्रम समाप्त होईल. जावामध्ये अपवादात्मक वर्गांमधून अपवाद प्राप्त होते. 'NullPointerException आणि ArrayIndexOutOfBounds अपवाद जावामध्ये दोन सामान्य अपवाद आहेत.

एक त्रुटी काय आहे?

त्रुटी ही एक अशी अट आहे ज्याला पुनर्प्राप्तीयोग्य मानले जाऊ शकते जसे की ज्यासाठी उपलब्ध आहे त्यापेक्षा मोठ्या मेमरीचे प्रमाण आवश्यक असते. या त्रुटी रनटाइममध्ये हाताळता येत नाहीत. एखादी त्रुटी आली तर, कार्यक्रम समाप्त होईल. जावामध्ये, त्रुटी थ्रेबल क्लासपासून मिळतात. त्रुटी सामान्यतः गंभीर समस्या उद्भवतात जे प्रोग्रामर (किंवा ऍप्लिकेशन) पकडण्याचा प्रयत्न करू नये. चुका फक्त असामान्य परिस्थिती आहेत, ज्याला नेहमीच्या परिस्थितीत घडण्याची अपेक्षा नसते, आणि म्हणून कधीही अंदाज लावता येत नाही. उदाहरणार्थ, OutOfMemoryError, स्टॅक ओव्हरफ्लोएरर आणि थ्रेड डीड ही अशी त्रुटी आहेत. त्रुटींसाठी पद्धतींनी हँडलर कधीही नसावे.

अपवाद व त्रुटी यांच्यात काय फरक आहे?

प्रोग्रॅमच्या अंमलबजावणीदरम्यान दोन्ही त्रुटी आणि अपवाद अवांछित घटना आहेत. तथापि, त्यांच्या मुख्य फरक आहेत अपवाद प्रोगामेरद्वारे पूर्वगणित करता येऊ शकतो, तर एखादी त्रुटी शोधणे कठीण असते.अपवाद तपासले किंवा अनचेक केले जाऊ शकतात. परंतु त्रुटी नेहमीच अनचेक केली जातात. अपवाद सामान्यतया प्रोग्रामर द्वारे केलेल्या त्रुटी सूचित करतो. तथापि, एखाद्या सिस्टम त्रुटीमुळे किंवा संसाधनाच्या अयोग्य वापरामुळे त्रुटी उद्भवतात. म्हणूनच, अपवाद अर्जाच्या पातळीवर हाताळले पाहिजेत, तर त्रुटी सिस्टम लेव्हलकडेच घ्याव्यात (फक्त शक्य असल्यास). अपवाद हाताळल्यानंतर, आपणास सर्वसामान्य कार्यक्रम प्रवाहात परत येण्याची हमी दिलेली आहे. पण एखादी त्रुटी पकडली गेल्यास, प्रोग्रामरला प्रथम स्थानावर कसे हाताळायचे हे माहिती नसते. पारंपारिक एरर हाताळणीच्या विपरीत, अपवाद एरर-हॅंडलिंग कोडला नेहमीच्या कोडपासून वेगळे करण्याची अनुमती देतात.