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

पायथन में अपवाद क्या है?

एक अपवाद एक घटना है, जो प्रोग्राम के निष्पादन के दौरान होती है जो प्रोग्राम के निर्देशों के सामान्य प्रवाह को बाधित करती है। सामान्य तौर पर, जब एक पायथन लिपि एक ऐसी स्थिति का सामना करती है जिसका वह सामना नहीं कर सकता है, तो यह एक अपवाद उठाता है। एक अपवाद एक पायथन ऑब्जेक्ट है जो एक त्रुटि का प्रतिनिधित्व करता है।

जब एक पायथन लिपि एक अपवाद उठाती है, तो उसे या तो तुरंत अपवाद को संभालना चाहिए अन्यथा यह समाप्त हो जाता है और बाहर निकल जाता है।

अपवाद को संभालना

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

सिंटैक्स

कोशिश का सरल सिंटैक्स यहां दिया गया है .... को छोड़कर ... और ब्लॉक -

try:
   You do your operations here;
   ......................
except ExceptionI:
   If there is ExceptionI, then execute this block.
except ExceptionII:
   If there is ExceptionII, then execute this block.
   ......................
else:
   If there is no exception then execute this block.

यहां ऊपर बताए गए सिंटैक्स के बारे में कुछ महत्वपूर्ण बिंदु दिए गए हैं -

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

उदाहरण

यह उदाहरण एक फ़ाइल खोलता है, फ़ाइल में सामग्री लिखता है और इनायत से बाहर आता है क्योंकि इसमें कोई समस्या नहीं है -

#!/usr/bin/python
try:
   fh = open("testfile", "w")
   fh.write("This is my test file for exception handling!!")
except IOError:
   print "Error: can\'t find file or read data"
else:
   print "Written content in the file successfully"
   fh.close()

आउटपुट

यह निम्नलिखित परिणाम उत्पन्न करता है -

Written content in the file successfully

उदाहरण

यह उदाहरण उस फ़ाइल को खोलने का प्रयास करता है जहाँ आपके पास लिखने की अनुमति नहीं है, इसलिए यह एक अपवाद उत्पन्न करता है -

#!/usr/bin/python
try:
   fh = open("testfile", "r")
   fh.write("This is my test file for exception handling!!")
except IOError:
   print "Error: can\'t find file or read data"
else:
   print "Written content in the file successfully"

आउटपुट

यह निम्नलिखित परिणाम उत्पन्न करता है -

Error: can't find file or read data

बिना अपवाद वाले खंड को छोड़कर

आप बिना किसी अपवाद के अपवाद के बयान का भी उपयोग कर सकते हैं -

try:
   You do your operations here;
   ......................
except:
   If there is any exception, then execute this block.
   ......................
else:
   If there is no exception then execute this block.

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

एकाधिक अपवादों के साथ खंड को छोड़कर

आप निम्न प्रकार से कई अपवादों को संभालने के लिए कथन को छोड़कर उसी का उपयोग कर सकते हैं -

try:
   You do your operations here;
   ......................
except(Exception1[, Exception2[,...ExceptionN]]]):
   If there is any exception from the given exception list,
   then execute this block.
   ......................
else:
   If there is no exception then execute this block.

कोशिश अंत खंड

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

try:
   You do your operations here;
   ......................
   Due to any exception, this may be skipped.
finally:
   This would always be executed.
   ......................

आप अन्य क्लॉज़ के साथ-साथ फ़ाइनल क्लॉज़ का भी उपयोग नहीं कर सकते।

उदाहरण

#!/usr/bin/python
try:
   fh = open("testfile", "w")
   fh.write("This is my test file for exception handling!!")
finally:
   print "Error: can\'t find file or read data"

आउटपुट

यदि आपके पास फाइल को राइटिंग मोड में खोलने की अनुमति नहीं है, तो यह निम्नलिखित परिणाम देगा -

Error: can't find file or read data

इसी उदाहरण को अधिक सफाई से इस प्रकार लिखा जा सकता है -

उदाहरण

#!/usr/bin/python
try:
   fh = open("testfile", "w")
   try:
      fh.write("This is my test file for exception handling!!")
   finally:
      print "Going to close the file"
      fh.close()
except IOError:
   print "Error: can\'t find file or read data"

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


  1. पायथन का Sys मॉड्यूल क्या है

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

  1. पायथन का OS मॉड्यूल क्या है

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

  1. पायथन में सीजीआई क्या है?

    सामान्य गेटवे इंटरफ़ेस, या CGI, बाहरी गेटवे प्रोग्राम के लिए HTTP सर्वर जैसे सूचना सर्वर के साथ इंटरफ़ेस करने के लिए एक मानक है। वर्तमान संस्करण CGI/1.1 है और CGI/1.2 प्रगति पर है। वेब ब्राउज़िंग CGI की अवधारणा को समझने के लिए, आइए देखें कि जब हम किसी विशेष वेब पेज या URL को ब्राउज़ करने के लिए हा