பைத்தானில் விதிவிலக்குகளை எவ்வாறு கையாள்வது

பைத்தானில் விதிவிலக்குகளை எவ்வாறு கையாள்வது

விதிவிலக்கு கையாளுதல் என்பது வேலை செய்யத் தவறிய உங்கள் திட்டத்தின் பாகங்களுக்கான பிழை செய்திகளைத் தனிப்பயனாக்க மற்றும் காண்பிக்கும் உங்கள் திறன் ஆகும்.





நீங்கள் ஒரு வலைத்தளத்தை உருவாக்கினாலும், ஒரு ஏபிஐ, ஒரு தொகுதி அல்லது பைத்தானைப் பயன்படுத்தி வேறு எந்தப் பொருளையும் உருவாக்கினாலும், விதிவிலக்குகளைத் திறம்பட கையாளும் திறன் ஒரு பிழையின் காரணத்தை வெளிப்படையாகக் கூற உங்களை அனுமதிக்கிறது.





இங்கே, பைத்தானில் விதிவிலக்குகளை நீங்கள் எவ்வாறு கையாள முடியும் என்பதை நாங்கள் பார்ப்போம்.





பைத்தானில் விதிவிலக்கு கையாளுதல் எவ்வாறு செயல்படுகிறது

நீங்கள் விதிவிலக்குகளை எழுப்பும்போது, ​​குறியீட்டின் ஒரு தொகுதி தோல்வியடையும் போதெல்லாம் ஒரு செய்தியை கொண்டு வரும்படி பைத்தானிடம் சொல்கிறீர்கள். விதிவிலக்கு கையாளுதல் என்பது ஒருவரை எடைபோட முயற்சி செய்யச் சொல்வது போன்றது. அவர்களால் முடியாவிட்டால், அவர்கள் உங்களுக்குத் தெரியப்படுத்த வேண்டும்.

இருப்பினும், பைத்தானில் ஒரு விதிவிலக்கை உயர்த்த, பைத்தானுக்கு ஒரு குறிப்பிட்ட குறியீட்டை இயக்க முயற்சி செய்யச் சொல்வீர்கள். அந்த தொகுதி தோல்வியுற்றால், தோல்வியடைந்த குறியீட்டிற்கு வரையறுக்கப்பட்ட விதிவிலக்கை உயர்த்த பைத்தானிடம் கேட்கலாம்.



பைதான் நிரலாக்கத்தில் நீங்கள் எப்போது விதிவிலக்குகளை பயன்படுத்த வேண்டும்?

பெரும்பாலான சந்தர்ப்பங்களில், விதிவிலக்குகளைப் பயன்படுத்தி நிலையான பைதான் பிழைகளை நீங்கள் மறைக்கலாம். ஆனால் நீங்கள் விழிப்புடன் இருக்க வேண்டும், ஏனெனில் இதைச் செய்வது பிழைத்திருத்த சிக்கல்களை ஏற்படுத்தும். இதன் விளைவாக, ஒரு பிழையின் மூல காரணத்தைக் கண்டறிவது உங்களுக்கு கடினமாக இருக்கலாம்.

எனவே, உங்கள் குறியீட்டை நீங்கள் போதுமான அளவு சோதித்தபோது நீங்கள் விதிவிலக்குகளைப் பயன்படுத்த வேண்டும், அது வேலை செய்யும் என்பதில் உறுதியாக இருக்கிறீர்கள். இறுதியில், குறியீட்டைக் காட்டிலும் பயனரின் முடிவில் இருந்து எழக்கூடிய சாத்தியமான தவறுகளைக் கையாள அவற்றைப் பயன்படுத்துவது சிறந்த நடைமுறையாகும்.





வேறு வார்த்தைகளில் கூறுவதானால், உங்கள் நிரலை எவ்வாறு பயன்படுத்துவது என்பதை பயனர்களுக்கு வழிகாட்ட ஒரு எச்சரிக்கைக் கருவியாக நீங்கள் விதிவிலக்குகளைப் பயன்படுத்தலாம்.

பைதான் விதிவிலக்குகளை கையாளுதல்

பைத்தானில் விதிவிலக்குகளை கையாள, நீங்கள் முதலில் உங்கள் குறியீட்டை மடிக்க வேண்டும் முயற்சி ... தவிர தொகுதி எப்போதாவது, நீங்கள் ஒரு சேர்க்க வேண்டும் இறுதியாக உங்கள் தேவைகளைப் பொறுத்து மேலும் செயல்களைக் கையாளும் அறிக்கை.





பைதான் விதிவிலக்குகளின் குறியீட்டு கருத்து பொதுவாக இதுபோல் தெரிகிறது:

try:
'code to be executed'
except:
'error message'

முன்பு குறிப்பிட்டபடி, நீங்கள் பயன்படுத்தலாம் இறுதியாக ஒரு விதிவிலக்கு தொகுதியில். ஆனால் நீங்கள் உள்ளே எழுதும் குறியீடு a இறுதியாக பிரிவு சுதந்திரமானது மற்றும் விதிவிலக்கு உள்ளதா இல்லையா என்பதை இயக்குகிறது.

சாராம்சத்தில், உள்ளே என்ன நடக்கிறது என்பதைப் பொருட்படுத்தாமல் நீங்கள் தொடர்ந்து இயக்க விரும்பும் மற்றொரு குறியீடு தொகுப்பு இருந்தால் அது பயனுள்ளதாக இருக்கும். முயற்சி ... தவிர தொகுதி

இங்கே ஒரு உதாரணம்:

try:
print(9+6)
except:
print('error message')
finally:
print('please restart')
Output:
15
please restart

மேலே உள்ள குறியீட்டில், தயவுசெய்து மறுதொடக்கம் செய்யுங்கள் ஒரு விதிவிலக்கு இருக்கிறதா இல்லையா என்பதைப் பொருட்படுத்தாமல் தொடர்ந்து இயங்குகிறது.

ஒரு வேறு நிபந்தனையும் பின்பற்றலாம் தவிர அறிக்கை:

try:
C = 2 + B
except:
print('B needs to be defined')
else:
print(u'Added successfully! The result is %s'%(C))
Output: B needs to be defined

இப்போது 'B' வரையறுக்கப்பட்டதை மீண்டும் முயற்சிக்கவும்:

try:
B = 5
C = 2 + B
except:
print('B needs to be defined')
else:
print(u'Added successfully! The result is %s'%(C))
Output: Added successfully! The result is 7

மேலே உள்ள உதாரணங்கள் தரமற்ற விதிவிலக்குகள். ஆனால் உள்ளமைக்கப்பட்ட (வரையறுக்கப்பட்ட) விதிவிலக்குகளை தரமற்றவற்றுடன் இணைக்கும்போது நீங்கள் இன்னும் வெளிப்படையான விதிவிலக்கு பெறலாம்:

try:
C = 2 + B
except NameError as err:
print(err, ':', 'B needs to be defined, please')
else:
print(u'Added successfully! The result is %s'%(C))
Output: name 'B' is not defined : B needs to be defined, please

மேலே உள்ள விதிவிலக்கு முதலில் ஏதேனும் இருக்கிறதா என்று சரிபார்க்கிறது பெயர் பிழை இல் முயற்சி தொகுதி பின்னர் அது தரத்தை அச்சிடுகிறது பெயர் பிழை விதிவிலக்கு முதலில் ('பெயர்' பி 'வரையறுக்கப்படவில்லை'). உங்கள் எழுத்துப்பூர்வ விதிவிலக்குடன் அதை ஆதரிக்கிறது ('பி வரையறுக்கப்பட வேண்டும், தயவுசெய்து').

தொடர்புடையது: அடிப்படை நிரலாக்கக் கோட்பாடுகள் ஒவ்வொரு புரோகிராமரும் தெரிந்து கொள்ள வேண்டும்

எக்ஸ்பாக்ஸ் 360 இல் ஒரு சுயவிவரத்தை எப்படி நீக்குவது

நீங்கள் விதிவிலக்குகளின் சங்கிலியைக் கையாள விரும்பினால், நீங்களும் உடன் வரலாம் முயற்சி பலருடன் தொகுதி தவிர அறிக்கைகள். உங்களுடையது என்றால் இது மிகவும் எளிது முயற்சி தொகுதிக்கு பல விதிவிலக்குகள் உள்ளன:

try:
B = 5
C = 2 + B
D = float(6)
F = 7/0
except NameError as err:
print(err,':', 'B needs to be defined, please')
except ValueError as val:
print(val,':', 'You can't convert that data')
except ZeroDivisionError as zeroerr:
print(zeroerr,':', 'You can't divide a number by zero')
else:
print(u'Operation successfull! The results are: %s, %s, and %s'%(C, D, F))
Output: division by zero : You can't divide a number by zero

பிரிவு செல்லுபடியாகும் என்றால் என்ன செய்வது? உதாரணமாக, மாற்றுதல் எஃப் = 7/0 மேலே உள்ள குறியீட்டில் எஃப் = 7/5 கொடுக்கிறது:

Output: Operation successfull! The results are: 7, 6.0, and 1.4

பைத்தானில் பயனர் வரையறுக்கப்பட்ட விதிவிலக்குகள்

நீங்கள் உங்கள் விதிவிலக்குடன் வந்து பின்னர் உங்கள் திட்டத்தில் அவர்களை அழைக்கலாம். இது உங்கள் விதிவிலக்கு பற்றிய ஒரு குறிப்பிட்ட விளக்கத்தைக் கொடுக்கவும், நீங்கள் விரும்பியபடி பெயரிடவும் உதவுகிறது.

ஆயினும்கூட, ஒவ்வொரு பயனர் வரையறுக்கப்பட்ட விதிவிலக்கு (நேரடியாகவோ அல்லது மறைமுகமாகவோ) இன்னும் உள்ளமைக்கப்பட்டதிலிருந்து வருகிறது விதிவிலக்கு பைத்தானின் வகுப்பு.

கீழே உள்ள எடுத்துக்காட்டு குறியீடு அடித்தளத்தைக் குறிக்கிறது விதிவிலக்கு நேரடியாக அழைப்பதன் மூலம் இயக்க பிழை இதிலிருந்து:

class connectionError(RuntimeError):
def __init__(self, value):
self.value = value
try:
raise connectionError('Bad hostname')
except connectionError as err:
print(err.value)
Output: Bad hostname

குறிப்பு இணைப்பு பிழை இந்த வழக்கில், ஒரு பயனர் வரையறுக்கப்பட்ட வகுப்பாகும், இது உங்கள் திட்டத்தில் எப்போது வேண்டுமானாலும் உயர்த்தலாம்.

தொடர்புடையது: பைத்தானுடன் வழக்கமான வெளிப்பாடுகளுக்கான தொடக்க வழிகாட்டி

பயனர் வரையறுக்கப்பட்ட விதிவிலக்கை நேரடியாக இருந்து பெறலாம் விதிவிலக்கு அடிப்படை வகுப்பு. எவ்வாறாயினும், கீழே உள்ள விதிவிலக்கு, 6 ​​இல் இருந்து 5 ஐக் கழிப்பதைத் தடுக்கிறது மற்றும் அடிப்படை வகுப்பிலிருந்து விதிவிலக்கை நேரடியாக அழைக்கிறது:

class errors(Exception):
pass
class sixFiveError(errors):
def __init__(self, value, message):
self.value = value
self.message = message
try:
raise sixFiveError(6-5,'This substraction is not allowed')
except sixFiveError as e:
print('There was an error:', e.message)
Output: There was an error: This substraction is not allowed

நடைமுறையில், நீங்கள் முன்பு வரையறுக்கப்பட்ட ஒரு விதிவிலக்கை மற்றொரு செயல்பாட்டில் அழைப்பதன் மூலம் பயன்படுத்தலாம். உதாரணமாக, நீங்கள் ஒன்றை உருவாக்கலாம் மிதக்கும் பிழை இது இரண்டு மிதவைகளை மட்டுமே சேர்க்க அனுமதிக்கிறது:

# First call the base exception classes:
class errors(Exception):
pass
# Next, derive your own exception from the base class:
class FloatError(errors):
def __init__(self, value, message):
self.value = value
self.message = message
# Create a function to add two floats:
def addTwoFloat(a, b):
if (type(a) and type(b)) != float:
raise FloatError(a+b,'Numbers must be float to add')
else:
print(a + b)
addTwoFloat(4, 7)
Output: __main__.FloatError: (11, 'Numbers must be float to add')

ஏனென்றால் நீங்கள் இப்போது ஒன்றை வரையறுத்துள்ளீர்கள் மிதவை பிழை வர்க்கம், நீங்கள் பயன்படுத்தி இரண்டு மிதவை அல்லாத இலக்கியங்களை சேர்க்க முயற்சித்தால் பைதான் அதை எழுப்புகிறது addtwoFloat செயல்பாடு

நீங்கள் அச்சிடலாம் மிதவை பிழை என்ன நடக்கிறது என்று பார்க்க நீங்கள் உருவாக்கிய அதே பைதான் கோப்பில் உள்ள வகுப்பு:

print(FloatError)
Output:

மிதவை பிழை இருப்பினும், உள்ளமைக்கப்பட்ட பைதான் விதிவிலக்கு அல்ல. அழைப்பதன் மூலம் இதை நீங்கள் சரிபார்க்கலாம் மிதவை பிழை நீங்கள் இந்த வகுப்பை உருவாக்காத மற்றொரு புதிய பைதான் கோப்பில்:

print(FloatError)
Output: NameError: name 'FloatError' is not defined

நீங்கள் ஒரு கிடைக்கும் பெயர் பிழை ஏனெனில் பைதான் அதை ஒரு நிலையான விதிவிலக்காக அங்கீகரிக்கவில்லை.

மற்ற பிழை வகுப்புகள் எவ்வாறு விளையாடுகின்றன என்பதைப் பார்க்க நீங்கள் சுய-வரையறை செய்ய முயற்சி செய்யலாம்.

விதிவிலக்குகளுடன் உங்கள் பைதான் திட்டங்களை மேலும் பயனர் நட்பாக ஆக்குங்கள்

பைத்தானில் பல நிலையான விதிவிலக்குகள் உள்ளன. ஆனால் உங்களுடையதையும் நீங்கள் வரையறுக்கலாம். ஆயினும்கூட, உங்கள் நிரலைப் பயன்படுத்துவதற்கான எளிமை ஓரளவிற்கு அது பல்வேறு விதிவிலக்குகளை எவ்வாறு கையாளுகிறது என்பதைப் பொறுத்தது (பயனர் வரையறுக்கப்பட்ட, குறிப்பிட்ட அல்லாத அல்லது தரமானதாக இருந்தாலும்).

இருப்பினும், விதிவிலக்குகள், பயனர்கள் அவர்களுடன் தொடர்புகொள்ளும்போது உங்கள் நிரல் எவ்வாறு செயல்பட வேண்டும் என்று கட்டளையிட உங்களை அனுமதிக்கிறது. ஒரு பிழையின் காரணத்தை தெளிவாகவும் சுருக்கமாகவும் குறிப்பிடுவது பயனர்களுக்கு அவர்கள் என்ன தவறு செய்கிறார்கள் என்பதைப் பற்றி ஒரு தலைப்பை அளிக்கிறது, சில சமயங்களில் அது அவர்களை சரியான திசையில் சுட்டிக்காட்டுகிறது.

பகிர் பகிர் ட்வீட் மின்னஞ்சல் உங்கள் பைதான் குறியீட்டை எவ்வாறு சரிசெய்வது

உங்கள் பாதையில் உள்ள ஒவ்வொரு பைதான் பிழையையும் எப்படி ஒடுக்குவது என்பதை அறிந்துகொள்ளுங்கள்.

அடுத்து படிக்கவும்
தொடர்புடைய தலைப்புகள்
  • நிரலாக்க
  • பைதான்
  • குறியீட்டு பயிற்சிகள்
எழுத்தாளர் பற்றி இடிசோ ஒமிசோலா(94 கட்டுரைகள் வெளியிடப்பட்டன)

இடோவு ஸ்மார்ட் தொழில்நுட்பம் மற்றும் உற்பத்தித்திறன் ஆகியவற்றில் ஆர்வம் கொண்டவர். அவரது ஓய்வு நேரத்தில், அவர் சலிப்படையும்போது குறியீட்டுடன் விளையாடுகிறார் மற்றும் சதுரங்கப் பலகைக்கு மாறுகிறார், ஆனால் அவர் எப்போதாவது வழக்கத்திலிருந்து விலகிச் செல்ல விரும்புகிறார். நவீன தொழில்நுட்பத்தை மக்களுக்கு காட்டும் ஆர்வம் அவரை மேலும் எழுத தூண்டுகிறது.

இடோவு ஒமிசோலாவில் இருந்து மேலும்

எங்கள் செய்திமடலுக்கு குழுசேரவும்

தொழில்நுட்ப குறிப்புகள், மதிப்புரைகள், இலவச மின் புத்தகங்கள் மற்றும் பிரத்யேக ஒப்பந்தங்களுக்கு எங்கள் செய்திமடலில் சேரவும்!

குழுசேர இங்கே சொடுக்கவும்