Introduction to Python Errors & Exceptions
जब आप कोई application create करते है और उसके code को execute करने का प्रयास करते है तो आपको कई बार errors का सामना करना पड़ता है। Mostly errors या तो program को execute होने नहीं देती (compile-time) या फिर execute होते हुए program को रोक (run-time) देती है।
Python code को execute करते समय दो प्रकार की errors से आपका सामना हो सकता है।
- Syntax Errors / Parsing Errors
- Exceptions/ Run Time Errors
Syntax Errors or Parsing Errors
Syntax errors basically गलत syntax लिखने की वजह से generate होती है। इन्हे आप grammatical errors कह सकते है। उदाहरण के लिए यदि function को define करते समय आप colon (:) ना लगाए और code को execute करने का प्रयास करे तो ऐसे में parser syntax-error generate करता है।
Syntax errors program को parse या compile करते समय ही parser द्वारा identify कर ली जाती है। इन errors को गलत syntax हटाकर और सही syntax apply करके remove किया जाता है।
जब कोई syntax error आती है तो parser message show करता है। उस message में parser उस complete line को display करता है जिसमें error आयी है। इसके अलावा parser उस line में up arrow (^) के माध्यम से वह जगह भी show करता है जँहा पर error detect हुई है।
ज्यादातर error parser द्वारा दिखाई गयी up arrow के बाद आती है। इसके अलावा parser द्वारा file name और line number भी show किये जाते है ताकि आप उस code को आसानी से ढूँढ सके जँहा पर error आयी है।
Exceptions or Run Time Errors
Exceptions वे errors होती है जो code execution के दौरान आती है। इन्हें run time errors भी कहा जाता है। किसी भी application के लिए exceptions बहुत घातक होती है। क्योंकि ये चलते हुए program को रोक देती है। इससे user experience ख़राब होता है और महत्वपूर्ण काम बीच में अटक सकते है।
जब एक exception generate होती है तो parser एक message display करता है। इस message में parser exception का type और वह location display करता है जँहा से संभवतः exception generate हुई है।
Exception type असल में exception का नाम होता है जो briefly यह बताता है की कौनसी exception generate हुई है। Exception की location stack traceback के रूप में दिखाई जाती है ताकि आप वह exact location track कर सके जँहा पर exception generate हुई है।
Handling Exceptions in Python
Syntax error की तरह आप exception को ठीक नहीं कर सकते है और generate होने से भी नहीं रोक सकते है। हाँ लेकिन आप generate होने वाली exceptions को handle अवश्य कर सकते है।
Python आपको exception को handle करने का mechanism provide करती है। यह mechanism आपको exception generate होने पर application के बुरी तरह fail होने की बजाय एक organized way में work करते हुए situation को handle करने की ability provide करता है।
Python में exception handling mechanism कुछ keywords द्वारा कार्य करता है।
- try
- except
- else
- raise
- finally
इन सभी keywords के द्वारा अलग अलग blocks define किये जाते है जो अलग अलग situations में execute होते है।
try Block
Try keyword के द्वारा try block define किया जाता है। Try block में उस code को रखा जाता है जो संभवतः exception generate कर सकता है।
try:
#statements that may generate exception |
यदि try block में कोई भी exception generate नहीं होती है तो except blocks का कोई भी statement execute नहीं होता है और सभी except blocks को skip कर दिया जाता है।
यदि try block में exception genrate होती है और उस exception से सम्बंधित except block define किया होता है तो उस except block के statements execute कर दिए जाते है।
यदि exception के लिए कोई भी except block नहीं मिलता है तो application रुक जाती है और parser द्वारा exception message display कर दिया जाता है।
Except block द्वारा exception को handle किये जाने के बाद execution आगे बढ़ता है।
except Block
Try block के तुरंत बाद except keyword द्वारा except block define किया जाता है। Except block को define करते समय except keyword के बाद exception type define किया जाता है।
यदि except block से पूर्व define किये गए try block में except block में define की गयी type की exception आती है तो except block में लिखे गए सभी statements execute हो जाते है।
एक try block के बाद multiple except blocks define किये जा सकते है। आप जिस भी type की exception को handle करना चाहते है उसके लिए अलग से except block define करते है। Try block में जिस type की exception generate होती है उसी से सम्बंधित except block execute किया जाता है और बाकि skip हो जाते है।
try:
#statements that may generate exception except <exception-Type>: #statements to be executed when <exception-Type> occurs in above try block except <exception-Type>: #statements to be executed when <exception-Type> occurs in above try block |
एक except block द्वारा multiple exceptions का नाम भी define किया जा सकता है। इसके लिए आप उन exceptions के नामों को comma से separate करके brackets में लिखते है।
except(ValueError, NameError, TypeError)
|
Exception Argument
हर exception के साथ एक value associated रहती है जिसे exception argument कहा जाता है। इसे except block में exception के नाम के बाद define किया जाता है।
except valueError as exObj:
print(exObj) |
यह argument exception के बारे में detail provide करता है। इसे print करके भी exception की details देखी जा सकती है।
else Block
Else block को except blocks के बाद define किया जाता है। इस block में वे statements लिखते जाते जिन्हें आप try block द्वारा कोई भी exception raise नहीं किये जाने की situation में execute करना चाहते है।
else:
#statements to be executed if try block does not generate an exception |
Else block ऐसी situations को avoid करने में मदद करता है जब except blocks उन exceptions को handle करने का प्रयास करते है जो try block में generate ही नहीं हुई है।
raise Statement
यदि आप समझते है की कोई statement या condition exception generate कर सकती है तो उस condition के लिए आप manually भी exception generate कर सकते है। इसके लिए raise keyword का प्रयोग किया जाता है।
raise TypeError(‘Type Exception Occurred!’)
|
कोई भी exception raise करने के लिए आप raise keyword के बाद exception का नाम लिखते है और उसके बाद brackets में जो message आप display करना चाहते है उसे argument के रूप में pass करते है।
Python Built-in Exceptions
Built-in exceptions ऐसी exceptions होती है जो python में पहले से ही define की गयी है। जैसे की TypeError, ValueError और NameError आदि कुछ built-in exception के उदाहरण है।
User Defined Exceptions
Python आपको स्वयं की custom exceptions define करने की ability भी provide करती है। इन्हे user defined exceptions कहा जाता है।
एक custom exception define करने के लिए आप class define करते है। इस class को custom application के रूप में treat किये जाने के लिए यह आवश्यक होता है की उसे python की Exception class से derive किया जाये।
class myCustomException:Exception
//define exception here… |
Python में Exception class सभी built in और user defined exceptions की base class होती है।
1 Comments
Python Course in Noida
ReplyDelete