నాలెడ్జ్ వర్సెస్ స్కిల్స్
థియరీకి, ప్రాక్టీస్కి పెద్ద తేడా లేదని కాలేజీ మాకు నేర్పింది. బాగా, ఖచ్చితంగా మీరు అదే కాదు అర్థం. కానీ మీరు ప్రధాన తేడాను చూడలేరు. ఇంకా ఒకటి ఉంది. చాలా మంది వ్యక్తులు "నాకు తెలుసు" మరియు "నేను చేయగలను" మధ్య సమానత్వ చిహ్నాన్ని ఉంచారు. మీరు చేస్తారా? కొన్ని ఉదాహరణల గురించి ఎలా?
- ధూమపానం నాకు హానికరం అని నాకు తెలుసు, కానీ నేను ధూమపానం చేస్తాను.
- ఫాస్ట్ ఫుడ్ నాకు చెడ్డదని నాకు తెలుసు, కానీ నేను దానిని తింటాను.
- నాకు ట్రాఫిక్ నిబంధనలు తెలుసు కానీ నేను డ్రైవ్ చేయలేను.
- జాగింగ్ నాకు మంచిదని నాకు తెలుసు కానీ నేను ఉదయం జాగింగ్ చేయను.
జీవశాస్త్రవేత్త? పెన్సిలిన్ను వేరు చేయండి. ఈ అచ్చు పుచ్చకాయలపై పెరుగుతుంది, కాబట్టి మీకు తెలుసు. మీకు ఎలా తెలుసు - అద్భుతం! మీరు చేయగలరా? ఆర్థికవేత్త?చమురుపై ధర పెరుగుతుందని అంచనా వేయండి. పూర్తి? ఇప్పుడు మీ సూచన ఆధారంగా సంవత్సరానికి $2,000 లేదా $200,000గా మార్చండి. మీరు ఎప్పుడైనా FOREXలో ఆడారా? అసలు డబ్బు కోసమా? లేదా అది ఏమిటో మీకు తెలుసా? అంతర్జాతీయ ఆర్థిక శాస్త్రం? అద్భుతమైన! నేను ఆఫ్షోర్ కంపెనీని ఎక్కడ తెరవగలను? హాంగ్-కాంగ్, ఐర్లాండ్ లేదా USAలో. ఎందుకు? మీకు తెలిసినప్పటికీ, ఇది సందేహాస్పదమైనది, మీరు దీన్ని ఎప్పటికీ చేయలేరు కాబట్టి మీరు దీన్ని చేయలేరు. దీన్ని ఎలా చేయాలో మీకు కనీసం క్లూ కూడా లేదు. ఓహ్, మీరు దానిని కాలేజీలో చదవలేదా? మీరు సిద్ధపడని పనులను మీకు ఇవ్వడానికి నాకు ఏ హక్కు ఉంది? ఎందుకంటే ఇవి నిజ జీవితంలోని పనులు. ఇది IS అభ్యాసం , మీరు కళాశాలలో చదివినవన్నీ: గోళాకార గుర్రాలు, పరిపూర్ణ పోటీ – ఇవేవీ నిజ జీవితంలో లేవు. కానీ నేను ఎందుకు చెప్పడం మర్చిపోయానుమార్కెటింగ్ స్పెషలిస్ట్ ? నా ఉపన్యాసాల గురించి వీలైనంత ఎక్కువ మందికి తెలిసేలా నా $500 ఖర్చు చేయడానికి ఉత్తమ మార్గం ఏమిటి? ప్రకటనపైనా? క్లాసిక్ అడ్వర్టైజింగ్ మాత్రమే కాకుండా, USP (ప్రత్యేకమైన అమ్మకపు ప్రతిపాదన) భావన కూడా పాతదని మీకు తెలుసా, ఇది మీకు కళాశాలలో దాదాపు ప్రత్యేకమైన వినాశనంగా బోధించబడిందని నేను ఖచ్చితంగా అనుకుంటున్నాను. మీకేదైనా తెలుసు అని మర్చిపోండి. మిమ్మల్ని మీరు ప్రశ్నించుకోండి - నేను ఏమి చేయగలను? ఉపయోగకరమైనది, నా ఉద్దేశ్యం? ప్రజలు ఏదైనా డబ్బు చెల్లిస్తారా? మంచి డబ్బు, నా ఉద్దేశ్యం? కాబట్టి స్నేహితులారా, కోడ్జిమ్ వంటి అద్భుతమైన కోర్సుకు కృతజ్ఞతలు తెలియజేయండి. దాని కారణంగా మీరు ప్రోగ్రామ్ ఎలా చేయాలో మాత్రమే తెలుసుకోలేరు, కానీ మీరు దీన్ని నిజంగా చేయగలరు. మీరు కొన్ని సంవత్సరాలలో ఉద్యోగం పొందగలరు మరియు మంచి డబ్బు సంపాదించగలరు. చక్కగా మరియు హాయిగా జీవించడానికి ఈ డబ్బు సరిపోతుందని నేను ఆశిస్తున్నాను. నేను మరోసారి చెబుతాను, కాబట్టి మీరు గుర్తుంచుకోవాలి: మీకు తెలిసిన దానితో సంబంధం లేదు. మీకు ఎలాంటి ఉపయోగకరమైన నైపుణ్యాలు ఉన్నాయి, ప్రజలు మీకు చెల్లించడానికి ఆసక్తి చూపుతారు. దీన్ని ఎంత త్వరగా అర్థం చేసుకుంటే అంత మంచిది.
మీరు కొత్త స్థాయికి చేరుకున్నారు
స్థాయి 9
1 రిషా, స్టాక్ ట్రేస్
- హే! స్టాక్ ట్రేస్ ఏమిటో ఈ రోజు నేను మీకు చెప్తాను. అయితే ముందుగా స్టాక్ అంటే ఏమిటో మీకు వివరిస్తాను. - ఒక నిర్దిష్ట క్లర్క్ కోసం అసైన్మెంట్లు - పేపర్ల స్టాక్ను ఊహించుకోండి. స్టాక్ పైభాగంలో కొత్త అసైన్మెంట్ను ఉంచవచ్చు మరియు అతను స్టాక్ పై నుండి ఒక అసైన్మెంట్ తీసుకుంటాడు. అందువల్ల, అసైన్మెంట్లు మొదట వచ్చిన వారికి కాదు. ప్రతిసారీ క్లర్క్ చివరిగా వచ్చే అసైన్మెంట్ తీసుకుంటాడు. సేకరణ యొక్క అటువంటి నిర్మాణాన్ని స్టాక్ అంటారు . - జావాలో, ప్రత్యేక సేకరణ ఉంది - స్టాక్. ఈ సేకరణలో «ఒక మూలకాన్ని జోడించు» మరియు «ఒక మూలకాన్ని తీసుకోండి(పొందండి/తీసివేయండి)» పద్ధతులు ఉన్నాయి. మీకు ఇప్పటికే తెలిసినట్లుగా, చివరిగా జోడించిన మూలకం ముందుగా తీసుకోబడుతుంది. - హమ్. ఇది కష్టం కాదు, నేను ఊహిస్తున్నాను. - బాగానే ఉంది. అప్పుడు నేను స్టాక్ ట్రేస్ ఏమిటో వివరిస్తానుఉంది. - జావా ఫంక్షన్లో А ఫంక్షన్ B అని కాల్ చేస్తుంది మరియు రెండోది ఫంక్షన్ C అని కాల్ చేస్తుంది , ఇది ఫంక్షన్ D అని పిలుస్తుంది . కాబట్టి, ఫంక్షన్ B నుండి నిష్క్రమించడానికి , మీరు ముందుగా ఫంక్షన్ C నుండి నిష్క్రమించాలి మరియు అలా చేయడానికి మీరు ఫంక్షన్ D నుండి నిష్క్రమించాలి . ఇది స్టాక్కి చాలా పోలి ఉంటుంది. - మరియు సారూప్యత ఏమిటి? - స్టాక్లో, ఒక నిర్దిష్ట అసైన్మెంట్ను పొందడానికి, మీరు పైన ఉంచిన అన్ని అసైన్మెంట్లను కూడా పూర్తి చేయాలి. - సరే, ఇది కాస్త సారూప్యత, కానీ నేను ప్రతిదీ సరిగ్గా అర్థం చేసుకున్నానో లేదో నాకు ఖచ్చితంగా తెలియదు. - ఇక్కడ చూడండి. జావాలో స్టాక్ అనేది మూలకాల సమితి. ఇది స్టాక్లోని కాగితపు షీట్ల వంటిది. ఎగువ నుండి మూడవదాన్ని తీసుకోవడానికి, మీరు రెండవ షీట్ తీసుకోవాలి, కానీ దానికి ముందు మీరు మొదటిదాన్ని తీసుకోవాలి. మీరు ఎల్లప్పుడూ షీట్లను ఉంచవచ్చు మరియు తీసుకోవచ్చు, కానీ మీరు వాటిని పైభాగంలో మాత్రమే ఉంచవచ్చు మరియు ఎగువ నుండి మాత్రమే తీసుకోవచ్చు. ఫంక్షన్ కాల్కి కూడా ఇది వర్తిస్తుంది. ఫంక్షన్ А కాల్స్ ఫంక్షన్ B , రెండో కాల్స్ ఫంక్షన్ C . А నుండి నిష్క్రమించడానికి , మీరు ముందుగా B నుండి నిష్క్రమించాలి మరియు దీన్ని చేయడానికి మీరు C నుండి నిష్క్రమించాలి . - ఒక నిమిషం ఆగు. నేను సరిగ్గా అర్థం చేసుకున్నట్లయితే, మొత్తం స్టాక్ "స్టాక్పై ఉంచిన చివరి షీట్ మాత్రమే తీసుకోబడుతుంది" మరియు "మొదట, చివరిగా పిలిచే ఫంక్షన్ నిష్క్రమించాలి" అని మారుతుంది. అవునా? - అవును. కాబట్టి, ఫంక్షన్ కాల్ల క్రమం «ఫంక్షన్ కాల్ స్టాక్» లేదా కేవలం «కాల్ స్టాక్». చివరిగా పిలవబడే ఫంక్షన్ తప్పనిసరిగా ముందుగా ముగించబడాలి. ఉదాహరణను చూద్దాం:
- సరే. ఫంక్షన్ కాల్తో ప్రతిదీ స్పష్టంగా ఉంది, నేను ఊహిస్తున్నాను. అయితే ఈ StackTraceElement అంటే ఏమిటి ? - జావా వర్చువల్ మెషీన్ అన్ని ఫంక్షన్ కాల్లను లాగ్ చేస్తుంది. ఈ ప్రయోజనం కోసం ఇది ఒక ప్రత్యేక సేకరణను కలిగి ఉంది - స్టాక్. ఒక ఫంక్షన్ మరొకటి కాల్ చేసినప్పుడు, JVM ఈ స్టాక్లో కొత్త మూలకం StackTraceElement ని ఉంచుతుంది. ఫంక్షన్ ముగిసినప్పుడు, మూలకం స్టాక్ నుండి తొలగించబడుతుంది. అందువలన, ఈ స్టాక్ ఎల్లప్పుడూ «ఫంక్షన్ కాల్ స్టాక్» యొక్క ప్రస్తుత స్థితి గురించి తాజా సమాచారాన్ని నిల్వ చేస్తుంది. - ప్రతి StackTraceElementఅనే పద్ధతి గురించిన సమాచారాన్ని కలిగి ఉంటుంది. కాబట్టి మీరు getMethodName ఉపయోగించి ఈ పద్ధతి పేరును పొందవచ్చు . - పై ఉదాహరణ దానిని చూపుతుంది:
- "కాల్ స్టాక్" పొందండి:
- ప్రతి కోసం లూప్ని ఉపయోగించి శ్రేణిని మళ్ళించండి . మీరు దానిని మరచిపోలేదని నేను ఆశిస్తున్నాను.
- System.out కు పద్ధతి పేర్లను ముద్రించండి .
2 డియెగో, టాస్క్ ఆన్ స్టాక్ ట్రేస్ డిస్ప్లే
- హే, అమిగో! స్క్రీన్పై స్టాక్ ట్రేస్ను ప్రదర్శించడానికి ఇక్కడ ఒక చిన్న పని ఉంది.| పనులు | |
|---|---|
| 1 | ప్రతి పద్ధతి దాని StackTrace వ్రాయండి ఒకదానికొకటి కాల్ ఐదు పద్ధతులు తిరిగి ఉండాలి . ప్రతి పద్ధతి దాని StackTraceని తిరిగి ఇవ్వాలి. |
| 2 | StackTrace మళ్ళీ ఒకదానికొకటి కాల్ చేసుకునే ఐదు పద్ధతులను వ్రాయండి. ప్రతి పద్ధతి దాని కాలర్ పద్ధతి పేరును తిరిగి ఇవ్వాలి. మీరు StackTraceని ఉపయోగించి కాలర్ పద్ధతిని పొందవచ్చు. |
| 3 | ఈ పద్ధతి ఒకదానికొకటి కాల్ చేసుకునే ఐదు పద్ధతులను వ్రాయండి నుండి ఈ పద్ధతిని పిలిచిన కోడ్ యొక్క లైన్ నంబర్ను అందించాలి . ప్రతి పద్ధతి ఈ పద్ధతి నుండి పిలిచిన కోడ్ యొక్క లైన్ నంబర్ను తిరిగి ఇవ్వాలి. ఫంక్షన్ ఎలిమెంట్ .getLineNumber()ని ఉపయోగించండి . |
| 4 | 10 కాల్ల స్టాక్ ట్రేస్ 10 కాల్ల స్టాక్ ట్రేస్ను పొందడానికి కోడ్ను వ్రాయండి. |
| 5 | పద్ధతి ఫలితాన్ని అందించాలి - దాని స్టాక్ ట్రేస్ డెప్త్ను ప్రదర్శించే మరియు దాని స్టాక్ ట్రేస్ డెప్త్ని తిరిగి ఇచ్చే పద్ధతిని వ్రాయండి. స్టాక్ ట్రేస్ డెప్త్ అనేది దాని పద్ధతుల సంఖ్య (జాబితాలోని మూలకాల సంఖ్య). |
3 ఎల్లీ, లోపాలు మరియు మినహాయింపులు
- హే, అమిగో! ఈ రోజు మనకు చాలా ఆసక్తికరమైన పాఠం ఉంది. మినహాయింపుల గురించి నేను మీకు చెప్తాను. మినహాయింపు అనేది ప్రోగ్రామ్లోని లోపాలను నియంత్రించడానికి ఒక ప్రత్యేక యంత్రాంగం. ప్రోగ్రామ్లో సంభవించే లోపాల యొక్క కొన్ని ఉదాహరణలు ఇక్కడ ఉన్నాయి:- ప్రోగ్రామ్ పూర్తి డిస్క్కి ఫైల్ను వ్రాయడానికి ప్రయత్నిస్తుంది.
- ప్రోగ్రామ్ శూన్య సూచనను నిల్వ చేసే వేరియబుల్ యొక్క పద్ధతిని కాల్ చేయడానికి ప్రయత్నిస్తుంది.
- ప్రోగ్రామ్ సంఖ్యను 0 ద్వారా విభజించడానికి ప్రయత్నిస్తుంది.
- లోపం సంభవించినప్పుడు, జావా వర్చువల్ మెషీన్ ఒక ప్రత్యేక వస్తువును సృష్టిస్తుంది - మినహాయింపు - లోపం గురించిన మొత్తం సమాచారాన్ని కలిగి ఉంటుంది. వివిధ లోపాల కోసం వివిధ మినహాయింపులు ఉన్నాయి.
- ఈ మినహాయింపు ప్రోగ్రామ్ను ప్రస్తుత ఫంక్షన్కు తక్షణమే అంతరాయం కలిగించేలా బలవంతం చేస్తుంది మరియు తదుపరి ఫంక్షన్ ప్రధాన పద్ధతి నుండి నిష్క్రమించే వరకు. ఆ తర్వాత కార్యక్రమం ముగుస్తుంది. జావా డెవలపర్లు ఈ ప్రక్రియను "కాల్ స్టాక్ను వెనక్కి తీసుకుంటారు" అని పిలుస్తారు.
- ఎందుకు «మెథడ్1 కాలింగ్ తర్వాత. ఎప్పటికీ చూపబడదు» స్క్రీన్పై ప్రదర్శించబడదా? - మీరు దాని గురించి అడిగినందుకు నేను సంతోషిస్తున్నాను. లైన్ 25 లో, సున్నా ద్వారా విభజన ఉంది. ఇది లోపానికి దారితీస్తుంది - మినహాయింపు. జావా వర్చువల్ మెషీన్ లోపం సమాచారాన్ని కలిగి ఉన్న ఆబ్జెక్ట్ ArithmeticException ను సృష్టించింది. ఈ వస్తువు మినహాయింపు. - పద్ధతి 1() లోపల మినహాయింపు సంభవించింది .దీని ఫలితంగా వెంటనే పద్ధతి రద్దు చేయబడింది. ట్రై-క్యాచ్ బ్లాక్ లేకుంటే, మెయిన్ మెథడ్ రద్దుకు కూడా దారి తీస్తుంది . - ట్రై బ్లాక్ లోపల మినహాయింపు సంభవించినట్లయితే, అది క్యాచ్ బ్లాక్లో క్యాచ్ చేయబడుతుంది. బ్లాక్ ట్రైలో మిగిలిన కోడ్ అమలు చేయబడదు, బ్లాక్ క్యాచ్ యొక్క అమలు వెంటనే ప్రారంభమవుతుంది. - నాకు పూర్తిగా అర్థం కాలేదు. - మరో మాటలో చెప్పాలంటే, ఈ కోడ్ ఇలా పనిచేస్తుంది:
- ట్రై బ్లాక్ లోపల మినహాయింపు సంభవించినట్లయితే , ఈ బ్లాక్లోని కోడ్ ఇకపై అమలు చేయబడదు, కానీ బ్లాక్ క్యాచ్ యొక్క అమలు ప్రారంభమవుతుంది.
- మినహాయింపు జరగకపోతే , ప్రయత్నించండి బ్లాక్ చివరి వరకు అమలు చేయబడుతుంది మరియు క్యాచ్ ఎప్పటికీ అమలు చేయబడదు .
బ్లాక్లు ఉండవచ్చు , వీటిలో ప్రతి ఒక్కటి దాని రకం మినహాయింపులను క్యాచ్ చేస్తుంది. - ఉమ్ఫ్. సరే, నాకు కాస్త అర్థమైంది. అయితే, నేనే ఇలాంటివి రాయను. అయితే, నేను అలాంటి కోడ్ను కలుసుకుంటే నేను భయపడను.
4 ఎల్లీ, రన్టైమ్ ఎక్సెప్షన్, త్రోలు
- నేను ఈ రోజు మరొక అంశాన్ని తీసుకురావాలని నిర్ణయించుకున్నాను. జావాలో, అన్ని మినహాయింపులు రెండు రకాలుగా విభజించబడ్డాయి - నియంత్రిత/తనిఖీ మరియు నియంత్రించబడని/తనిఖీ చేయబడలేదు . తనిఖీ చేయబడిన మినహాయింపులు తప్పనిసరిగా క్యాచ్ చేయబడాలి, తనిఖీ చేయనివి క్యాచ్ చేయవచ్చు కానీ అది అవసరం లేదు . - ఉద్దేశపూర్వకంగా కోడ్లో మినహాయింపులను విసిరేయడం సాధ్యమేనా? - మీ కోడ్లో, మీరు మినహాయింపులను మీరే వేయవచ్చు. మీరు మీ స్వంత మినహాయింపులను కూడా వ్రాయవచ్చు. కానీ మేము తరువాత ఈ రంధ్రంలో లోతుగా చేస్తాము. ఇప్పుడు జావా వర్చువల్ మెషీన్ విసిరిన మినహాయింపులతో ఎలా పని చేయాలో నేర్చుకుందాం. - అలాగే. - ClassNotFoundException మరియు FileNotFoundException మినహాయింపులు ఉంటేఒక పద్ధతిలో విసిరివేయబడతాయి (కనిపిస్తాయి), ప్రోగ్రామర్ వాటిని ఒక పద్ధతి (పద్ధతి శీర్షిక) సంతకంలో పేర్కొనాలి. అటువంటి మినహాయింపులు తనిఖీ చేయబడతాయి. ఇది సాధారణంగా ఇలా కనిపిస్తుంది:
- కాబట్టి, మేము కామాలతో వేరు చేయబడిన త్రోలు మరియు జాబితా మినహాయింపులను వ్రాస్తాము. సరియైనదా? అవునా? - అవును. అయితే ఇంకో ఆసక్తికరమైన విషయం కూడా ఉంది. దిగువ ఉదాహరణ సంకలనం చేయబడే క్రమంలో, method1() ని పిలిచే పద్ధతి ఈ మినహాయింపులను పట్టుకోవాలి లేదా వాటిని ముందుకు విసిరేయాలి. మీరు తనిఖీ చేసిన మినహాయింపును ముందుకు వేయాలనుకుంటే, మీరు దానిని పద్ధతి యొక్క హెడర్లో పేర్కొనాలి . - మరోసారి, ప్రధాన పద్ధతిలో ఉంటే, మీరు దాని హెడర్ పదబంధంలో FileNotFoundException విసిరే పద్ధతిని కాల్ చేయాలనుకుంటే , …అప్పుడు మీరు ఈ రెండు పనులలో ఒకదాన్ని చేయాలి:
- మినహాయింపులను పట్టుకోవడానికి FileNotFoundException, … మీరు ట్రై-క్యాచ్ బ్లాక్తో
ప్రమాదకరమైన పద్ధతిని పిలిచే కోడ్ను చుట్టాలి - మినహాయింపులను పట్టుకోవద్దు FileNotFoundException, …



వాటిని పట్టుకోవడం లేదా విసిరేయడం అవసరం లేదు. ఇవి తనిఖీ చేయని మినహాయింపులు. ఈ మినహాయింపులు ఊహించడం కష్టంగా పరిగణించబడతాయి, కాబట్టి వాటి సంభవించడాన్ని అంచనా వేయడం దాదాపు అసాధ్యం. మీరు వారితో అవే పనులు చేయవచ్చు, కానీ వాటిని త్రోలలో పేర్కొనవలసిన అవసరం లేదు .
5 రిషా, కాల్ స్టాక్ను రోలింగ్ చేయడం, మినహాయింపులలో దీన్ని ఎలా చేయాలి
- మినహాయింపులు ఎలా పనిచేస్తాయనే దాని గురించి నేను మీకు కొంచెం ఎక్కువ చెప్పాలనుకుంటున్నాను. దిగువ ఉదాహరణ ఇలా వివరిస్తుంది:
- నాకు అర్థం కాలేదు. - అలాగే. నేను ఏమి జరుగుతుందో వివరిస్తాను. - ఎడమవైపు ఉన్న ఉదాహరణలో, మేము గొలుసు క్రమంలో అనేక పద్ధతులను పిలుస్తాము. method2() లో మేము ప్రత్యేకంగా ఒక మినహాయింపును సృష్టించి, విసిరేస్తాము (లోపాన్ని ప్రారంభించడానికి). - కుడివైపున ఉన్న ఉదాహరణ ఏమి జరుగుతుందో చూపిస్తుంది. పద్ధతి 2 () చూడండి . మినహాయింపు యొక్క సృష్టి ఇలా మారుతుంది: మేము RuntimeException రకం యొక్క ఆబ్జెక్ట్ను సృష్టిస్తాము , దానిని ప్రత్యేక వేరియబుల్ మినహాయింపులో నిల్వ చేస్తాము మరియు వెంటనే పద్ధతి నుండి నిష్క్రమించండి – తిరిగి . - method1 లో, method2 యొక్క కాల్ తర్వాత ఒక చెక్ ఉంది,మినహాయింపు ఉంటే లేదా; మినహాయింపు ఉంటే, పద్ధతి1 వెంటనే ముగుస్తుంది. ప్రతి (!) జావా పద్ధతికి కాల్ చేసిన తర్వాత ఈ చెక్ పరోక్షంగా చేయబడుతుంది. - వావ్! - సరిగ్గా. - మెథడ్ మెయిన్లో కుడి వైపున ఉన్న కాలమ్లో ట్రై-క్యాచ్ బ్లాక్ ద్వారా మినహాయింపు క్యాచ్ అయినప్పుడు ఏమి జరుగుతుందో నేను వ్రాసాను . మినహాయింపు లేనట్లయితే, కోడ్ ప్రణాళికాబద్ధంగా అమలు చేయబడుతోంది. క్యాచ్లో పేర్కొన్న రకానికి మినహాయింపు ఉంటే , మేము దానిని నిర్వహిస్తాము. - మరియు త్రో మరియు ఉదాహరణ అంటే ఏమిటి? - ఎడమవైపు ఉన్న చివరి పంక్తిని చూడండి కొత్త రన్టైమ్ మినహాయింపు(లు). ఈ విధంగా మేము ఒక మినహాయింపును సృష్టించి, విసిరేస్తాము. ఇది ఒక ఉదాహరణ మాత్రమే. మేము ఇప్పటివరకు చేయము. - కుడి బ్లాక్లో « а instanceof B » కమాండ్ని ఉపయోగించి ఆబ్జెక్ట్ a రకం B ఉందో లేదో తనిఖీ చేస్తాము . అంటే, వేరియబుల్ మినహాయింపులో నిల్వ చేయబడిన ఆబ్జెక్ట్ RuntimeException అనే రకాన్ని కలిగి ఉందా . ఇది తార్కిక వ్యక్తీకరణ. - బాగా, ఇది కొంచెం స్పష్టంగా ఉంది.
6 డియెగో, మినహాయింపు క్యాచ్ టాస్క్
- ఇక్కడ చూడండి! అంకుల్ డియెగో మీ కోసం పట్టుకోవడంలో కొన్ని టాస్క్లను తీసుకువచ్చారు. మీకు అదృష్టం కావాలి. మీకు ఇది అవసరమని నేను భావిస్తున్నాను. హే.
- హే, అమిగో! ఇక్కడ కొన్ని ఆసక్తికరమైన మినహాయింపు క్యాచ్ టాస్క్లు ఉన్నాయి.
| పనులు పట్టుకోవడం | |
|---|---|
| 1 | 1. సంఖ్యలతో పనిచేసేటప్పుడు మినహాయింపు కోడ్ను అమలు చేసినప్పుడు సంభవించే మినహాయింపును క్యాచ్ చేయండి: int a = 42 / 0; మినహాయింపును స్క్రీన్పై ప్రదర్శించండి, దాని రకాన్ని పేర్కొంటుంది |
| 2 | 2. స్ట్రింగ్స్తో పనిచేసేటప్పుడు మినహాయింపు కోడ్ను అమలు చేసినప్పుడు సంభవించే మినహాయింపును క్యాచ్ చేయండి: స్ట్రింగ్ s = శూన్య; స్ట్రింగ్ m = s.toLowerCase(); మినహాయింపును స్క్రీన్పై ప్రదర్శించండి, దాని రకాన్ని పేర్కొంటుంది. |
| 3 | 3. శ్రేణులతో పనిచేసేటప్పుడు మినహాయింపు కోడ్ను అమలు చేసినప్పుడు సంభవించే మినహాయింపును క్యాచ్ చేయండి: int[] m = new int[2]; m[8] = 5; మినహాయింపును స్క్రీన్పై ప్రదర్శించండి, దాని రకాన్ని పేర్కొంటుంది. |
| 4 | 4. జాబితా సేకరణలతో పనిచేసేటప్పుడు మినహాయింపు కోడ్ను అమలు చేసినప్పుడు సంభవించే మినహాయింపును క్యాచ్ చేయండి: ArrayList<String> list = కొత్త ArrayList<String>(); స్ట్రింగ్ s = list.get(18); మినహాయింపును స్క్రీన్పై ప్రదర్శించండి, దాని రకాన్ని పేర్కొంటుంది. |
| 5 | 5. మ్యాప్ సేకరణలతో పనిచేసేటప్పుడు మినహాయింపు కోడ్ను అమలు చేసినప్పుడు సంభవించే మినహాయింపును క్యాచ్ చేయండి: HashMap<String, String> map = కొత్త HashMap<String, String>(శూన్య); map.put(శూన్య, శూన్య); map.remove(శూన్యం); మినహాయింపును స్క్రీన్పై ప్రదర్శించండి, దాని రకాన్ని పేర్కొంటుంది. |
7 రిషా, మల్టిపుల్ క్యాచ్ ఎలా పనిచేస్తుంది
- ఇప్పుడు, మరికొన్ని ఆసక్తికరమైన ఉపన్యాసాలు. నాకు టీచింగ్ అంటే చాలా ఇష్టం. - మల్టిపుల్ క్యాచ్ ఎలా పనిచేస్తుందో నేను మీకు చెప్పాలనుకుంటున్నాను . వాస్తవానికి ఇది చాలా సులభం: బ్లాక్ ట్రైలో మినహాయింపు సంభవించినప్పుడు , ప్రోగ్రామ్ అమలు మొదటి క్యాచ్కు బదిలీ చేయబడుతుంది . - బ్లాక్ క్యాచ్ యొక్క కుండలీకరణాల్లో పేర్కొన్న రకం మినహాయింపు-వస్తువు రకం వలె ఉంటే, అప్పుడు కోడ్ అమలు {} లోపల ప్రారంభమవుతుంది. లేకపోతే మేము తదుపరి క్యాచ్కి వెళ్తాము . తనిఖీ అక్కడ పునరావృతమవుతుంది. - ఎక్కువ క్యాచ్ బ్లాక్లు లేనట్లయితే , మినహాయింపు క్యాచ్ చేయబడకపోతే, అది ముందుకు విసిరివేయబడుతుంది మరియు ప్రస్తుత పద్ధతికి అంతరాయం ఏర్పడుతుంది. - అలాగా. ఆ క్యాచ్ అమలు చేయబడుతుంది, దాని రకం మినహాయింపు రకానికి సరిపోలుతుంది. - అవును నిజమే. వాస్తవానికి, ఇది కొంచెం క్లిష్టంగా ఉంటుంది: పాయింట్ ఏమిటంటే తరగతులు ఒకదానికొకటి వారసత్వంగా పొందవచ్చు. "ఆవు" తరగతి "జంతువు" నుండి వారసత్వంగా వచ్చినట్లయితే, "ఆవు" రకం యొక్క వస్తువు "ఆవు" రకం యొక్క వేరియబుల్లో మాత్రమే కాకుండా, "జంతు" రకం యొక్క వేరియబుల్లో కూడా నిల్వ చేయబడుతుంది. . - అయితే ఏంటి? - అన్ని మినహాయింపులు మినహాయింపు లేదా రన్టైమ్ ఎక్సెప్షన్ (ఇది మినహాయింపు నుండి కూడా వారసత్వంగా పొందబడింది) నుండి వారసత్వంగా పొందబడినందున, అవన్నీ క్యాచ్ (మినహాయింపు ఇ) లేదా క్యాచ్ (రన్టైమ్ ఎక్సెప్షన్ ఇ) కమాండ్లను ఉపయోగించి క్యాచ్ చేయబడవచ్చు . - అయితే ఏంటి? - దీని అర్థం,ముందుగా, మీరు క్యాచ్ (మినహాయింపు ఇ) కమాండ్ ఉపయోగించి ఏదైనా మినహాయింపును పొందవచ్చు . రెండవది, క్యాచ్ బ్లాక్ల క్రమం ముఖ్యమైనది. ఉదాహరణలు: - 0 ద్వారా విభజన ఫలితంగా వచ్చే అంకగణిత మినహాయింపు రెండవ క్యాచ్లో క్యాచ్ చేయబడింది.
- దిగువ ఉదాహరణలో, మొదటి క్యాచ్లో ArithmeticException క్యాచ్ చేయబడింది , ఎందుకంటే అన్ని మినహాయింపుల తరగతులు మినహాయింపు నుండి వారసత్వంగా పొందబడతాయి. కాబట్టి, మినహాయింపు ఏదైనా మినహాయింపును పొందుతుంది . - దిగువ ఉదాహరణలో, మినహాయింపు ArithmeticException క్యాచ్ కాలేదు, కానీ కాలింగ్ పద్ధతికి ముందుకు విసిరివేయబడింది. - సరే, ఇది ఇప్పుడు స్పష్టమవుతోంది. ఈ మినహాయింపులు అంత సులభం కాదు.
- ఇది మాత్రమే అనిపిస్తుంది. నిజానికి, ఇది జావాలో సరళమైన వాటిలో ఒకటి. - దాని గురించి సంతోషించాలా లేదా కలత చెందాలా అనే సందేహం నాకు ఉంది…
8 డియెగో, మల్టిపుల్ ఎక్సెప్షన్ క్యాచ్ టాస్క్లు
- హే, అమిగో! నిన్న నేను త్రాగి మీ పనులను చాలా క్లిష్టతరం చేసాను, కానీ మీ వైపు నుండి ఎటువంటి కఠినమైన భావాలు లేవని నేను ఆశిస్తున్నాను మరియు మీరు వాటన్నింటినీ పరిష్కరిస్తారా? ఇది మీ మంచి కోసమే. ఇక్కడ:| పనులు | |
|---|---|
| 1 | 1. మినహాయింపులు మినహాయింపు నుండి వారసత్వంగా పొందిన రెండు మినహాయింపులను విసిరే పద్ధతి ఉంది మరియు మిగిలిన రెండు RuntimeException నుండి వారసత్వంగా పొందబడ్డాయి : NullPointerException , ArithmeticException , FileNotFoundException , మరియు URISyntaxException . మీరు NullPointerException మరియు FileNotFoundExceptionని పట్టుకోవాలి , కానీ ArithmeticException మరియు URISyntaxExceptionని పట్టుకోకూడదు . ఇది ఎలా చెయ్యాలి? |
| 2 | 2. క్యాచింగ్ మినహాయింపులు మినహాయింపు నుండి వరుసగా మూడు మినహాయింపులు ఉన్నాయి : class Exception1 పొడిగిస్తుంది మినహాయింపు తరగతి మినహాయింపు2 పొడిగిస్తుంది మినహాయింపు1 తరగతి మినహాయింపు3 పొడిగిస్తుంది మినహాయింపు2 ఒక పద్ధతి ఉంది, ఇది క్రింది విధంగా వివరించబడింది: పబ్లిక్ స్టాటిక్ శూన్య పద్ధతి1() త్రోలు మినహాయింపు1, మినహాయింపు2, మినహాయింపు3 క్యాచ్ను వ్రాయండి మినహాయింపు 1 , మినహాయింపు 2 మరియు మినహాయింపు 3 మూడింటిని పట్టుకోవడానికి బ్లాక్ చేయండి |
| 3 | 3. ఎంపిక చేసిన మినహాయింపులను పట్టుకోవడం 1. BEAN.methodThrowExceptions పద్ధతి ద్వారా ఏ మినహాయింపులు ఇవ్వబడతాయో కనుగొనండి . 2. మెథడ్ processExceptions() పద్ధతిని BEAN.methodThrowExceptions అని పిలుస్తుంది మరియు మినహాయింపులను నిర్వహించాలి: 2.1. ఒక మినహాయింపు FileSystemException సంభవించినట్లయితే, BEAN.log పద్ధతిని కాల్ చేయడం ద్వారా దాన్ని లాగ్ చేయండి మరియు ముందుకు 2.2ని విసిరేయండి. మినహాయింపు CharConversionException లేదా ఏదైనా ఇతర IOException సంభవించినట్లయితే, BEAN.log 3 పద్ధతికి కాల్ చేయడం ద్వారా దాన్ని లాగ్ చేయండి. మీరు 2.1లో ఫార్వార్డ్ చేస్తున్న మినహాయింపు యొక్క తరగతి/రకాన్ని జోడించండి. ప్రక్రియ మినహాయింపులు() పద్ధతి సంతకం. 4. మెయిన్()లో మిగిలిన మినహాయింపును నిర్వహించండి మరియు దానిని లాగ్ చేయండి. ప్రయత్నించండి..క్యాచ్ చిట్కా: మీరు క్యాచ్ చేయకూడదనుకున్న మినహాయింపు MyExceptionని మీరు పట్టుకున్నట్లయితే , మీరు దానిని క్రింది కోడ్ని ఉపయోగించి ముందుకు త్రోయవచ్చు: క్యాచ్ (MyException ఇ) { త్రో ఇ; } |
| 4 | 4. తనిఖీ చేయబడిన మినహాయింపులను క్యాచ్ చేయడం పద్ధతి processExceptions() లో తనిఖీ చేయబడిన అన్ని మినహాయింపులను నిర్వహించండి . మీరు తనిఖీ చేసిన ప్రతి మినహాయింపును స్క్రీన్పై ప్రదర్శించాలి. మీరు ఒక బ్లాక్ ప్రయత్నాన్ని మాత్రమే ఉపయోగించవచ్చు . |
| 5 | 5. ఎంపిక చేయని మినహాయింపులను క్యాచ్ చేయడం విధానం processExceptions() లో ఎంపిక చేయని అన్ని మినహాయింపులను నిర్వహించండి . మీరు ప్రింట్స్టాక్() పద్ధతిని ఉపయోగించి సంభవించిన ప్రతి మినహాయింపు యొక్క స్టాక్ ట్రేస్ను స్క్రీన్పై ప్రదర్శించాలి . మీరు ఒక బ్లాక్ ప్రయత్నాన్ని మాత్రమే ఉపయోగించవచ్చు . |
9 ప్రొఫెసర్, మినహాయింపులపై ఉపన్యాసం
- ఈ రోజు మనకు చాలా ఆసక్తికరమైన అంశం ఉంది - మినహాయింపులు. ఆ సమయంలో, యువ శాస్త్రవేత్తలు మరియు ప్రోగ్రామర్లు ఈ అంశం గురించి చాలా ఉత్సాహంగా ఉన్నప్పుడు... - క్షమించండి, నేను తప్పనిసరిగా ల్యాబ్కి వెళ్లాలి. లెక్చర్ నోట్స్ ఇక్కడ ఉన్నాయి. మీరు దానిని మీ కోసం కనుగొంటారని నేను భావిస్తున్నాను. ఇక్కడ: జావా మినహాయింపులు (ఒరాకిల్ డాక్యుమెంటేషన్) జావాలో మినహాయింపు నిర్వహణ (జావా టి పాయింట్) జావా - మినహాయింపుల నిర్వహణ (ట్యుటోరియల్స్ పాయింట్) ప్రాథమిక జావా మినహాయింపు నిర్వహణ10 జూలియో
- అమిగో, నేటి పాఠం గురించి మీరు ఏమనుకుంటున్నారు? మీ పాజిట్రాన్ మెదడు ఇంకా పని చేయలేదా? డియెగో యొక్క పనులు ఎవరినైనా ధరించడానికి సరిపోతాయి. ఒక్కసారి బీర్ తాగి రిలాక్స్ అవుదాం. మీరు ఇంకా నిలబడి ఉన్నారా?11 కెప్టెన్ ఉడుతలు
- హలో, సైనికుడు! - శుభోదయం అయ్యా! - మీ కోసం నా దగ్గర కొన్ని అద్భుతమైన వార్తలు ఉన్నాయి. మీ నైపుణ్యాలను బలోపేతం చేయడానికి ఇక్కడ శీఘ్ర తనిఖీ ఉంది. ప్రతిరోజూ దీన్ని చేయండి మరియు మీరు మీ నైపుణ్యాలను త్వరగా పెంచుకుంటారు. Intellij IDEAలో టాస్క్లు ప్రత్యేకంగా రూపొందించబడ్డాయి.| Intellij Ideaలో చేయవలసిన అదనపు పనులు | |
|---|---|
| 1 | 1. సున్నా ద్వారా భాగహారం ఒక పద్ధతిని సృష్టించండి పబ్లిక్ స్టాటిక్ శూన్య డివిజన్ ByZero() , ఇక్కడ మీరు ఏదైనా సంఖ్యను సున్నాతో విభజించి, విభజన ఫలితాన్ని స్క్రీన్పై ప్రదర్శించాలి. డివిజన్బైజీరో() పద్ధతి కాల్ని ప్రయత్నించండి..క్యాచ్ చేయండి . Exception.printStackTrace() పద్ధతిని ఉపయోగించి మినహాయింపు స్టాక్ ట్రేస్ను స్క్రీన్కు ప్రదర్శించండి . |
| 2 | 2. 10 నుండి 0 వరకు కౌంట్డౌన్ 10 నుండి 0 వరకు కౌంట్డౌన్కు లూప్ను వ్రాయండి. ఆలస్యం చేయడానికి Thread.sleep(100)ని ఉపయోగించండి; స్లీప్ కాల్ని ప్రయత్నించండి..క్యాచ్ చేయండి . |
| 3 | 3. ఒక పద్ధతిని ప్రయత్నించండి..కీబోర్డ్ నుండి రీడ్ నంబర్లను క్యాచ్ చేయండి. కీబోర్డ్ నుండి సంఖ్యలను చదవడానికి ఒక కోడ్ను ప్రత్యేక పద్ధతిలో readData() వ్రాయండి . ఈ పద్ధతి యొక్క మొత్తం బాడీని ( రీడ్డేటా() పద్ధతిలోని మొత్తం కోడ్ , సంఖ్యలు నిల్వ చేయబడే జాబితా యొక్క ప్రకటన మినహా) ప్రయత్నించండి..క్యాచ్ . వినియోగదారు సంఖ్యను నమోదు చేయడానికి బదులుగా కొంత వచనాన్ని నమోదు చేస్తే, పద్ధతి మినహాయింపును గుర్తించి, ముందు నమోదు చేసిన అన్ని సంఖ్యలను స్క్రీన్పై ప్రదర్శించాలి. స్క్రీన్పై సంఖ్యలను ప్రదర్శించండి. ప్రతి సంఖ్య కొత్త లైన్లో ఉండాలి. సంఖ్యల క్రమం ఇన్పుట్లో ఉన్నట్లుగానే ఉండాలి. |
| 4 | 4. తేదీ కన్వర్టర్ "08/18/2013" ఫార్మాట్లో కీబోర్డ్ నుండి తేదీని చదవండి, ఆ తేదీని స్క్రీన్పై ప్రదర్శించండి "AUG 18, 2013" రూపంలో. వస్తువులు తేదీ మరియు SimpleDateFormat ఉపయోగించండి . |
| 5 | 5. అచ్చులు మరియు హల్లులు కీబోర్డ్ నుండి లైన్ చదివే ప్రోగ్రామ్ను వ్రాయండి. ప్రోగ్రామ్ స్క్రీన్పై రెండు స్ట్రింగ్లను ప్రదర్శించాలి: 1) మొదటి స్ట్రింగ్లో అచ్చులు ఉండాలి 2) రెండవ స్ట్రింగ్ ఎంటర్ చేసిన టెక్స్ట్ నుండి హల్లులు మరియు విరామ చిహ్నాలను కలిగి ఉండాలి. ఖాళీల వారీగా అక్షరాలను వేరు చేయండి. ఉదాహరణ ఇన్పుట్: ఆపు లుక్ వినండి ఉదాహరణ అవుట్పుట్: oooie stplklstn |
| 6 | 6. ది టేల్ ఆఫ్ ది లిటిల్ రెడ్ రైడింగ్ హుడ్ 1. ఐదు తరగతులు ఉన్నాయి: రెడ్ రైడింగ్ హుడ్, అమ్మమ్మ, ప్యాటీ, వుడ్కటర్, తోడేలు. 2. ప్రతి తరగతికి అర్రేలిస్ట్ రకానికి చెందిన రెండు ఫీల్డ్లు ఉన్నాయి : చంపబడినవి మరియు తిన్నవి. 3. అవసరమైన వస్తువులు ఇప్పటికే సృష్టించబడ్డాయి (హుడ్, అమ్మమ్మ, ...). 4. "లిటిల్ రెడ్ రైడింగ్ హుడ్" యొక్క తర్కాన్ని పొందడానికి సరైన సంబంధాన్ని (ఎవరు తిన్నారు మరియు చంపారు) సృష్టించండి. |
| 7 | 7. మూవ్ స్టాటిక్ మోడిఫైలు మూవ్ స్టాటిక్ మాడిఫైయర్లను కోడ్ కంపైల్ చేస్తుంది. |
| 8 | 8. సంఖ్యల శ్రేణుల జాబితా సంఖ్యల శ్రేణుల మూలకాలు ఉన్న జాబితాను సృష్టించండి. వరుసగా 5, 2, 4, 7, 0 పొడవుతో ఐదు ఆబ్జెక్ట్ శ్రేణులను జాబితాకు జోడించండి. ఏదైనా డేటాతో శ్రేణులను పూరించండి మరియు వాటిని స్క్రీన్పై ప్రదర్శించండి. |
| 9 | 9. పది పిల్లులు ఫీల్డ్ స్ట్రింగ్ పేరుతో క్లాస్ క్యాట్ను సృష్టించండి . నిఘంటువు మ్యాప్ను సృష్టించండి<String, Cat> , మోడల్ «పేరు» - «పిల్లి»పై 10 పిల్లులను జోడించండి. మ్యాప్ నుండి పేర్ల సమితిని పొందండి మరియు సెట్ను స్క్రీన్పై ప్రదర్శించండి. |
| బోనస్ పనులు | |
|---|---|
| 1 | 1. ప్రోగ్రామ్ కంపైల్ మరియు రన్ చేయదు. సరి చేయి. టాస్క్: ప్రోగ్రామ్ కీబోర్డ్ నుండి రెండు ఫైల్ పేర్లను చదవాలి మరియు మొదటి ఫైల్ను రెండవ పేరుతో పేర్కొన్న స్థానానికి కాపీ చేయాలి. |
| 2 | 2. ప్రోగ్రామ్కు కొత్త కార్యాచరణను జోడించండి. పాత పని: ప్రోగ్రామ్ కీబోర్డ్ నుండి రెండు ఫైల్ పేర్లను చదవాలి మరియు మొదటి ఫైల్ను రెండవ పేరుతో పేర్కొన్న స్థానానికి కాపీ చేయాలి. కొత్త పని: ప్రోగ్రామ్ కీబోర్డ్ నుండి రెండు ఫైల్ పేర్లను చదవాలి మరియు మొదటి ఫైల్ను రెండవ పేరుతో పేర్కొన్న స్థానానికి కాపీ చేయాలి. పేర్కొన్న పేరుతో ఫైల్ (కాపీ చేయబోయేది) లేనట్లయితే, ప్రోగ్రామ్ స్క్రీన్పై "ఫైల్ ఉనికిలో లేదు" అనే సందేశాన్ని ప్రదర్శించాలి మరియు చదవడానికి ముందు కన్సోల్ నుండి ఫైల్ పేరును మరోసారి చదవడానికి ప్రయత్నించండి. రెండవ (గమ్యం) ఫైల్ పేరు. |
| 3 | 3. అల్గోరిథం నేర్చుకోవడం మరియు సాధన చేయడం. కీబోర్డ్ నుండి పదాలు మరియు సంఖ్యల జాబితాను చదవండి. స్క్రీన్ పదాలను ఆరోహణ క్రమంలో మరియు సంఖ్యలను అవరోహణ క్రమంలో ప్రదర్శించండి. ఉదాహరణ ఇన్పుట్: చెర్రీ 1 బీన్ 3 ఆపిల్ 2 0 పుచ్చకాయ ఉదాహరణ అవుట్పుట్: ఆపిల్ 3 బీన్ 2 చెర్రీ 1 0 పుచ్చకాయ |
GO TO FULL VERSION