"హాయ్, అమిగో!"
"హాయ్, ఎల్లీ! ఎలా ఉంది జీవితం?"
"అద్భుతం, ధన్యవాదాలు. ఎలా ఉన్నారు?"
"అద్భుతం, ఈ ఉదయం టన్నుల కొద్దీ కొత్త విషయాలు నాకు వివరించబడ్డాయి."
"బాగా ఉంది. నువ్వు అలసిపోలేదా?"
"అవును, అది ఉంది. నేను కొంచెం అలసిపోయాను."
"అప్పుడు మీరు అదృష్టవంతులయ్యారు. నేను ఈ రోజు ఒక పెద్ద, సంక్లిష్టమైన అంశాన్ని కవర్ చేయాలనుకున్నాను, కానీ చివరి నిమిషంలో నేను నా మనసు మార్చుకున్నాను మరియు చిన్న, సులభమైనదాన్ని కవర్ చేయాలని నిర్ణయించుకున్నాను."
"చిన్న మరియు సులభం? నేను సిద్ధంగా ఉన్నాను."
"ఈ రోజు మనం మినహాయింపుల అంశాన్ని వివరంగా పరిశీలిస్తాము."
"మీరు ఎర్రర్ హ్యాండ్లింగ్ గురించి మాట్లాడుతున్నారా?"
"మీరు మినహాయింపులను ఎర్రర్లుగా భావించకూడదు. మినహాయింపులు 'ఏదో ఊహించని విధంగా జరిగింది' అనే నివేదికల వలె ఉంటాయి. ఈ నివేదికల ఆధారంగా, మీరు ప్రత్యామ్నాయ చర్యలను ప్రతిపాదించవచ్చు."
"ఇదంతా పద్ధతులకు సంబంధించినది. మీరు ఒక పద్ధతిని పిలిచినప్పుడు, అది ఏమి చేయాలని పిలవబడుతుందో అది చేస్తానని వాగ్దానం చేస్తుంది. "
"ఒక పద్ధతి, ఏ కారణం చేతనైనా, అది చేయాలనుకున్నది చేయలేనప్పుడు, అది కాలర్కు తెలియజేయాలి."
"మరో మాటలో చెప్పాలంటే, ఒక పద్ధతి దాని పనిని చేయకపోవడం మరియు దాని గురించి ఎవరికీ చెప్పకుండా ఉండటం చాలా చెత్త విషయం. దాని కంటే దారుణంగా ఏమీ ఉండకపోవచ్చు. అది జరిగినప్పుడు మీరు పరిస్థితిపై నియంత్రణ కోల్పోతారు. "
"మీరు కొత్త ప్రోగ్రామర్ అయినప్పుడు, మీరు కేవలం మెథడ్స్కి కాల్ చేసినట్లు అనిపిస్తుంది మరియు మీరు వారిని ఏమి చేయమని కోరారో వారు ఖచ్చితంగా చేస్తారు."
"మీరు అనుభవజ్ఞుడైన ప్రోగ్రామర్ అయినప్పుడు, ఒక పద్ధతి యొక్క పనిని చేయగల సామర్థ్యాన్ని ప్రభావితం చేసే డజన్ల కొద్దీ కారకాలు ఉండవచ్చని మరియు ఒక పద్ధతిని దాని పనిని పూర్తి చేయకుండా నిరోధించే సందర్భాలు చాలా ఉన్నాయని మీకు తెలుసు."
"ప్రోగ్రామర్ దృక్కోణంలో, ప్రోగ్రామ్ ఎర్రర్ను ఎదుర్కొన్నప్పుడు దాన్ని ముగించి, ఆపై ఏమి జరిగిందో వినియోగదారు గ్రహించకుండా (తప్పుగా) పనిని కొనసాగించడం కంటే ప్రోగ్రామ్ని ముగించడం వెయ్యి రెట్లు మంచిది."
"కాబట్టి ప్రోగ్రామ్ను మూసివేసి, మొత్తం డేటాను పోగొట్టుకున్నట్లయితే ఏదైనా తప్పును చూపే ప్రోగ్రామ్ అధ్వాన్నంగా ఉండవచ్చు?"
"ప్రోగ్రామ్ ఏదో తప్పుగా చూపుతోందని మీరు ఏమి భావించారు? ప్రోగ్రామ్లలో చాలా బగ్లు ఉండవచ్చు మరియు మీ డేటా మొత్తం తిరిగి పొందలేనంతగా పోతుంది? మీరు 3 గంటల పాటు టెక్స్ట్లో టైప్ చేసారని అనుకుందాం, కానీ ఏదీ సేవ్ చేయబడదు ఎందుకంటే ఒక కేవలం రెండు నిమిషాల తర్వాత జరిగిన లోపం."
"ఒక అనుభవం లేని ప్రోగ్రామర్ మినహాయింపులను ఎదుర్కొన్నప్పుడు, అతను విసుగు చెందుతాడు."
"కానీ వాస్తవానికి, మినహాయింపులు అతను ఊహించిన కానీ చేయని అన్ని దృశ్యాలను బహిర్గతం చేస్తాయి."
"మీరు మినహాయింపులను నిర్వహించకూడదని ఎంచుకోవచ్చు మరియు అది మిమ్మల్ని చెడ్డ ప్రోగ్రామర్గా చేస్తుంది. కానీ మీ పద్ధతులు మినహాయింపులను ఇవ్వకపోతే, మీరు అస్సలు ప్రోగ్రామర్ కాదు - ఎందుకంటే మీరు ఈ సాధారణ సత్యాన్ని అర్థం చేసుకోవడంలో విఫలమయ్యారు:"
"ఒక పద్దతి అది వ్రాయబడిన పనిని చేస్తుంది, లేదా అది మినహాయింపును విసురుతుంది. మూడవ ఎంపిక లేదు!"
"సరే, నేను నిన్ను నమ్ముతున్నాను. మినహాయింపులను ఉపయోగిస్తానని వాగ్దానం చేస్తున్నాను."
"అద్భుతమైనది. అప్పుడు నేను మీకు మినహాయింపుల క్రమక్రమం గురించి చెబుతాను:"

"మినహాయింపు సోపానక్రమం నాలుగు తరగతులపై ఆధారపడి ఉంటుంది."
"అత్యల్ప బేస్ క్లాస్ త్రో చేయదగినది ."
" లోపం మరియు మినహాయింపు తరగతులు దానిని వారసత్వంగా పొందుతాయి."
" RuntimeException మినహాయింపును పొందుతుంది ."
" ఎర్రర్ క్లాస్ అనేది StackOverFlow , OutOfMemory , ..." వంటి JVM లోపాల కోసం బేస్ క్లాస్.
"ఒక ప్రోగ్రామ్ సాధారణంగా అటువంటి లోపాల నుండి కోలుకోదు, ఇది రద్దు చేయడానికి దారి తీస్తుంది."
"నిజానికి, ప్రోగ్రామ్ సాధారణంగా అమలులో కొనసాగడానికి తగినంత మెమరీ లేకుంటే లేదా స్టాక్ ఓవర్ఫ్లో ఉంటే ఏమి చేయాలి?"
" మినహాయింపు అనేది ప్రోగ్రామ్ ద్వారా విసిరిన అన్ని సాధారణ మినహాయింపులకు బేస్ క్లాస్. రన్టైమ్ ఎక్సెప్షన్ అనేది కొంచెం భిన్నమైన నియమాలను కలిగి ఉన్న ప్రత్యేక రకమైన మినహాయింపు ."
"ఏమిటి అవి?"
"నేను ఇప్పుడు వివరించబోయేది అదే."
"మీకు బహుశా గుర్తున్నట్లుగా, మినహాయింపులు రెండు వర్గాలలోకి వస్తాయి: తనిఖీ చేయబడ్డాయి మరియు ఎంపిక చేయబడలేదు ."
"ఒక పద్దతి తనిఖీ చేయబడిన మినహాయింపులను విసిరినట్లయితే , అది కాల్ చేసే పద్ధతి తప్పనిసరిగా కాల్ను ట్రై-క్యాచ్ బ్లాక్లో చుట్టాలి. సరే, అది లేదా పద్ధతి సంతకంలో త్రోలను స్పష్టంగా సూచించడం ద్వారా మినహాయింపును (దాని కాలర్కి) తిరిగి వేయండి ."
"ఈ నియమాలు/పరిమితులు ఎంపిక చేయని మినహాయింపులకు వర్తించవు."
"కాబట్టి, మినహాయింపును వారసత్వంగా పొందే అన్ని మినహాయింపులు తనిఖీ చేయబడినవిగా పరిగణించబడతాయి. రన్టైమ్ మినహాయింపును వారసత్వంగా పొందే మినహాయింపులు మినహా, ఎంపిక చేయబడలేదు."
"ఊహూ. ఇంతకు ముందు నువ్వు నాతో చెప్పినట్లు నాకు గుర్తుంది."
"ఏమిగో! వారు ప్రతి ఇంటర్వ్యూలో మినహాయింపు క్రమక్రమం గురించి అడుగుతారు . నేను మళ్ళీ చెబుతాను — ప్రతి ఇంటర్వ్యూలో . మీరు ఈ అంశాన్ని ఖచ్చితంగా తెలుసుకోవాలి."
"సరే. నేను అన్నీ మళ్ళీ చదివి తెలుసుకుంటాను. నాకు సహాయం చేసినందుకు ధన్యవాదాలు, ఎల్లీ."
GO TO FULL VERSION