పైథాన్లో అస్సర్షన్ ఎర్రర్ అంటే ఏమిటి?
అసర్షన్ ఎర్రర్లు అనేది ప్రోగ్రామర్ మాడ్యూల్ రన్ అయ్యే ముందు సంతృప్తి చెందాల్సిన ప్రమాణం లేదా షరతును ప్రకటించడానికి ఉపయోగించే కోడ్ బ్లాక్ను వ్రాసినప్పుడు లేదా సృష్టించినప్పుడు ఏర్పడే ప్రోగ్రామింగ్ కాన్సెప్ట్. ఏదైనా పైథాన్ ఎర్రర్ లాగా, నిర్ధారణ నిజమని ప్రకటించబడినప్పుడు షరతు పేర్కొన్నట్లయితే, నియంత్రణ కోడ్ యొక్క తదుపరి లైన్కు బదిలీ చేయబడుతుంది. ఇది తప్పు అయితే, మరోవైపు, ఎర్రర్ లేదా మినహాయింపు ఎదుర్కోబడి, ప్రోగ్రామ్ ఆపివేయబడుతుంది. అసెర్ట్ స్టేట్మెంట్ వివిధ ప్రోగ్రామింగ్ భాషలలో వాటి నిర్దిష్ట వాక్యనిర్మాణాలతో ఉపయోగించబడుతుంది ఎందుకంటే ఇది భాషతో సంబంధం లేకుండా ఉంటుంది. ఇది ఉపవర్గం లేదా మినహాయింపు తరగతికి ఉదాహరణ. పైథాన్ అస్సెర్షన్ ఎర్రర్ కింది వాక్యనిర్మాణాన్ని కలిగి ఉంది:
సింటాక్స్: షరతును నిర్ధారించండి, ఎర్రర్_మెసేజ్ (ఐచ్ఛికం)
ఉదాహరణ
మేము ఒక వ్యక్తి వయస్సుని ఇన్పుట్గా నమోదు చేస్తాము మరియు అది సున్నా కంటే తక్కువగా ఉన్నట్లయితే, కన్సోల్ నిర్ధారిత లోపాన్ని లేవనెత్తుతుంది.
ఇప్పుడు, మనం 0 కంటే తక్కువ వయస్సును నమోదు చేస్తే ఏమి చేయాలి?
ఈ పద్ధతిని ఉపయోగించి మీ కోడ్ని డీబగ్ చేయడం సులభం, తద్వారా ప్రోగ్రామ్లో ఎర్రర్లను కనుగొనడం మరియు బగ్లను సరిదిద్దడం సులభం అవుతుంది.
పైథాన్లో AssertionError ఎలా పనిచేస్తుంది
పైథాన్ లాంగ్వేజ్ ఒక నిశ్చిత ప్రకటనను కలిగి ఉంటుంది, ఇది తార్కిక వాదనలతో సాధారణ దోష సందేశ అవుట్పుట్లను రూపొందించడానికి ఉపయోగించవచ్చు. నిరూపణ ప్రకటన విఫలమైనప్పుడు, “మినహాయింపు” AssertionError లేవనెత్తబడుతుంది. పైథాన్లో, మినహాయింపు తరగతులు BaseException తరగతి నుండి తీసుకోబడ్డాయి. AssertionError క్లాస్ యొక్క బేస్ క్లాస్ అయిన BaseException క్లాస్, మినహాయింపు తరగతి నుండి ఉద్భవించింది. ఒక నిశ్చిత ప్రకటనను ఉపయోగించినప్పుడు దాని వైఫల్యాన్ని ఎదుర్కోవడానికి ఎల్లప్పుడూ తగిన మినహాయింపు నిర్వహణ కోడ్ ఉండాలి. పైథాన్లోని డిఫాల్ట్ మినహాయింపు హ్యాండ్లర్ ప్రోగ్రామర్ వ్రాసిన ఎర్రర్ మెసేజ్ని ప్రింట్ చేస్తుంది, అయితే ఎర్రర్ మెసేజ్ లేకుండానే ఎర్రర్ను హ్యాండిల్ చేయవచ్చు లేదా పరిష్కరిస్తుంది.
పైథాన్లో అసెర్షన్ ఎర్రర్ని అమలు చేస్తోంది
పైథాన్లో AssertionError యొక్క అనేక ఉదాహరణలు క్రిందివి:
ఉదాహరణ
ఈ ఉదాహరణలో, సర్కిల్ యొక్క వైశాల్యాన్ని కనుగొనే ప్రోగ్రామ్లో AssertionErrorని ప్రదర్శించడానికి మేము పైథాన్ ప్రోగ్రామ్ను వ్రాస్తాము.
'r' వ్యాసార్థం విలువ సర్కిల్ యొక్క వైశాల్యాన్ని కనుగొనడానికి సృష్టించబడిన మునుపటి ప్రోగ్రామ్లోని ఫంక్షన్కు ఇన్పుట్గా పంపబడుతుంది. సరఫరా చేయబడిన విలువ లేదా వ్యాసార్థం “r” సున్నా కంటే తక్కువగా ఉందో లేదో నిర్ధారించడానికి నిశ్చిత ప్రకటన ఉపయోగించబడుతుంది మరియు దానికి ప్రతికూల విలువ సరఫరా చేయబడితే, మినహాయింపు పెరుగుతుంది. ఫంక్షన్కు అందించిన వ్యాసార్థం “r” విలువ ఆధారంగా సర్కిల్ యొక్క ప్రాంతం తిరిగి ఇవ్వబడుతుంది. ముందుగా, ఫంక్షన్ r విలువ 3తో అమలు చేయబడుతుంది. ఆ తర్వాత ఫంక్షన్ 2.5 విలువతో అమలు చేయబడుతుంది. మేము 'r' యొక్క ప్రతికూల విలువను ఉపయోగించినప్పుడు, అంటే, '-1'ని ఉపయోగించినప్పుడు, AssertionError పెరుగుతుంది.
అస్సెర్షన్ లోపం సంభవించడాన్ని ప్రదర్శించడానికి మరొక ఉదాహరణను ప్రయత్నిద్దాం.
ఉదాహరణ
ఈ ఉదాహరణలో, హారం విలువ సున్నా కాదా అని ప్రోగ్రామ్ నిర్ణయిస్తుంది.
ధృవీకరణ లోపం యొక్క ఎర్రర్ సందేశం మునుపటి ప్రోగ్రామ్లో ప్రదర్శించబడుతుంది. మేము రెండు వేరియబుల్స్ (a మరియు b) సృష్టించాము మరియు పూర్ణాంక విలువలు వేరియబుల్స్ను పేర్కొంటాయి. రెండవ వేరియబుల్, అనగా, b అది నిశ్చయ ప్రకటనను ఉపయోగించి 0కి సమానం కాదా అని పరీక్షించబడుతుంది. లేకుంటే, దోష సందేశం ముద్రించబడుతుంది. కాకపోతే, మొదటి సంఖ్యను రెండవ విలువతో విభజించిన ఫలితం ప్రదర్శించబడుతుంది. మునుపటి చిత్రంలో, ప్రోగ్రామ్ యొక్క అవుట్పుట్ ప్రదర్శించబడుతుంది.
అసెర్షన్ ఎర్రర్ యొక్క అప్లికేషన్లు
ధృవీకరణ లోపం యొక్క ఇతర ప్రయోజనకరమైన ఉపయోగాలు:
- పరామితి విలువలను మూల్యాంకనం చేయడంలో అస్సర్షన్ సహాయపడుతుంది
- ఇన్పుట్ రకాన్ని మరియు ఆ విలువ చెల్లుబాటులో ఉందో లేదో పర్యవేక్షించడంలో వాదనలు సహాయపడతాయి
- అదనంగా, మరొక కోడ్ డెవలపర్ ఇంటర్ఫేస్ను దుర్వినియోగం చేస్తున్నారో లేదో గుర్తించడంలో వాదనలు సహాయపడతాయి
- ప్రోగ్రామ్ అవుట్పుట్ను నిరంతరం పర్యవేక్షించడంలో వాదనలు సహాయపడతాయి
పైథాన్లోని అసర్ట్ లోపాలను మనం ఎలా నివారించగలం
- ఒక పైథాన్ ప్రోగ్రామ్లోని -O ఫ్లాగ్ని ప్రతి అసెర్షన్ స్టేట్మెంట్ను డిసేబుల్ చేయడానికి ఉపయోగించవచ్చు. మేము ధృవీకరణ స్టేట్మెంట్లను నిలిపివేస్తే, ఆ తర్వాత వచ్చే స్టేట్మెంట్లు అమలు చేయబడవని గుర్తుంచుకోవడం ముఖ్యం.
- ఎన్విరాన్మెంట్ వేరియబుల్ కూడా అసెర్షన్ స్టేట్మెంట్లను ఆఫ్ చేయడానికి ఫ్లాగ్ను సెట్ చేయవచ్చు. పర్యావరణాన్ని ఉపయోగించే లేదా వారసత్వంగా పొందే అన్ని ప్రక్రియలు మరియు అప్లికేషన్లు ఈ పరిస్థితిలో ప్రభావితమవుతాయి.
- పైథాన్లో, నిరూపణ లోపాలను నిరోధించడానికి సులభమైన విధానం వాటిని మాన్యువల్గా నిర్వహించడం. ప్రోగ్రామ్ యొక్క నియంత్రణ ప్రవాహం మళ్లించబడిందని మేము నిర్ధారిస్తే, అది నిశ్చయ ప్రకటనలను యాక్సెస్ చేయదు, అప్పుడు నిరూపణ ఎర్రర్లకు అవకాశం ఉండదు.
అసర్షన్ లోపాన్ని నిర్వహించడం
ధృవీకరణ ప్రకటనతో పాటు, మేము కింది పద్ధతులను ఉపయోగించి ధృవీకరణ లోపాన్ని కూడా నిర్వహించవచ్చు:
బ్లాక్లను మినహాయించి ప్రయత్నించండి-ని ఉపయోగించి అస్సెర్షన్ లోపాన్ని నిర్వహించడం
ధృవీకరణ ప్రకటన విలువలు సమానంగా ఉన్నాయో లేదో నిర్ణయిస్తుంది. ఈ పూర్ణాంకాలు సమానంగా లేనందున ప్రయత్నించండి బ్లాక్ AssertionError లోపాన్ని పెంచుతుంది. మినహాయింపు బ్లాక్కు మినహాయింపు లభించిన తర్వాత ప్రింట్ కమాండ్ అమలు చేయబడుతుంది. ఇక్కడ, మినహాయింపు బ్లాక్ నుండి ప్రింట్ స్టేట్మెంట్ అవుట్పుట్ ప్రదర్శించబడుతుంది. మినహాయించబడిన బ్లాక్లో ఎర్రర్ను మళ్లీ పెంచడానికి రైజ్ కీవర్డ్ ఉపయోగించబడుతుంది, తద్వారా మేము మినహాయింపు మూలాన్ని గుర్తించగలము. మినహాయింపు సంభవించినప్పుడు, 'రైజ్' అనే కీవర్డ్ ఎర్రర్ని లేవనెత్తుతుంది మరియు ప్రోగ్రామ్ను ముగించింది. ఇది ఇప్పటికే ఉన్న మినహాయింపు యొక్క రికార్డ్/ట్రాక్ను నిర్వహించడానికి లేదా ఉంచడంలో సహాయపడుతుంది.
ట్రేస్బ్యాక్ మాడ్యూల్ని ఉపయోగించడంలో అసెర్షన్లోపాన్ని నిర్వహించడం
కోడ్ అనేక నిర్ధారిత ప్రకటనలను కలిగి ఉన్నప్పుడు, ట్రేస్బ్యాక్ మాడ్యూల్ ఖచ్చితమైన లోపం యొక్క మూలాన్ని గుర్తించడంలో సహాయపడుతుంది.
ట్రేస్బ్యాక్ మాడ్యూల్ని ఉపయోగించి, మా ప్రింట్ స్టేట్మెంట్ ప్లేస్హోల్డర్లతో వ్రాయవచ్చు {}.
అదనంగా, మేము లైన్ స్థానం, ఫైల్ పేరు, పద్ధతి పేరు, అలాగే మినహాయింపు సంభవించిన వచనం/సందేశాన్ని నిల్వ చేయడానికి ఇతర వేరియబుల్లను నిర్వచించవచ్చు.
ట్రేస్బ్యాక్ ఆబ్జెక్ట్ను 'tb'గా సూచిస్తారు. మేము రెండు ప్లేస్హోల్డర్లను ఉపయోగిస్తాము: ఒకటి టెక్స్ట్ కోసం మరియు ఒకటి ప్రింట్ స్టేట్మెంట్లోని పంక్తి స్థానం కోసం.
స్టేట్మెంట్ “రైజ్” - exc_type, exc_traceback మరియు exc_value యొక్క మూడు భాగాలు sys.exc_info() ఫంక్షన్ ద్వారా అందించబడతాయి.
ప్రింట్ స్టేట్మెంట్ని ఉపయోగించి అస్సెర్షన్లోపాన్ని నిర్వహించడం
మినహాయింపును మాన్యువల్గా హ్యాండిల్ చేయడానికి, ఎక్సెక్ట్ బ్లాక్లోని స్టేట్మెంట్ “ప్రింట్”ని ఉపయోగించవచ్చు.
ప్రింట్ స్టేట్మెంట్ వినియోగదారు నమోదు చేసిన ఏదైనా దోష సందేశాన్ని ముద్రిస్తుంది. ఈ పద్ధతిలో, సాంకేతిక లోపం వినియోగదారుకు ఆందోళన కలిగించదు.
దోషానికి బదులుగా, సంక్షిప్త సందేశం ప్రదర్శించబడుతుంది.
ముగింపు
ఈ పోస్ట్లో, మేము మొదట పైథాన్లో మినహాయింపుల పరిచయాన్ని చూశాము. మేము AssertionError, ఇది ఎలా పని చేస్తుంది మరియు పైథాన్లో AssertionErrorని ఎలా అమలు చేయగలము అని చర్చించాము. మేము AssertionError యొక్క అనేక ప్రయోజనాలను మరియు వాటిని ఎలా నివారించవచ్చో వివరించాము. ఈ పోస్ట్లోని చివరి విభాగంలో, ట్రై-ఎక్సప్ట్ బ్లాక్లు, ట్రేస్బ్యాక్ మాడ్యూల్ మరియు ప్రింట్ స్టేట్మెంట్ని ఉపయోగించి పైథాన్లో అసెర్షన్లోపాన్ని ఎలా నిర్వహించవచ్చో మేము చూశాము.