CodeGym /Java blog /Véletlen /Régi szint 09
John Squirrels
Szint
San Francisco

Régi szint 09

Megjelent a csoportban

Tudás vs. készségek

Régi szint 09-1A főiskola megtanította nekünk, hogy nincs nagy különbség elmélet és gyakorlat között. Nos, biztosan megérted, hogy ez nem ugyanaz. De nem látod az alapvető különbséget. Mégis van egy. A legtöbben az egyenlőségjelet a „tudom” és a „tudom” közé teszik. Ön? Mit szólnál néhány példához?
  1. Tudom, hogy a dohányzás rossz nekem, de dohányzom.
  2. Tudom, hogy a gyorsétterem rossz nekem, de megeszem.
  3. Ismerem a közlekedési szabályokat, de nem tudok vezetni.
  4. Tudom, hogy jó nekem a kocogás, de nem kocogok reggel.
Gyakran előfordul, hogy az emberek a „tudom” kifejezést „tudom”-nak veszik. Jó példa ez a közlekedési szabályokra. Ha valaki ismeri az előírásokat és tudja, hogyan kell vezetni, az azt jelenti, hogy vezethet? Dehogy. Mi van, ha azt hiszi, hogy tud vezetni? Akkor miért kell neki oktató – ő már mindent tud. Ha biztos benne, hogy már mindent tud, valószínűleg nem fog semmi újat tanulni. És ha biztos vagy benne, hogy mindent tudsz, nem fogsz tanulni. Egy ilyen gondolat meg sem fordul a fejében. Ez pedig azt jelenti, hogy elszalaszt minden csodálatos lehetőséget, hogy tanuljon valamit. A szokásos főiskola csak tudást ad; önállóan kell készségeket szereznie. De mit hallok? Volt már gyakorlatod az elmélet mellett a főiskolán? Oké, ha fizika karon tanultál, készítsen egy gőzgép működőképes modelljét legalább 20%-os hatásfokkal. Fogadok, hogy tudja, hogyan kell csinálni, de valójában nem lesz képes megtenni, igaz? Te vegyész vagy ? Készíts füstmentes port. Tudod hogyan, de nem tudod, he? Matematikus, te? Számítsa ki egy tüzérségi lövedék röppályáját! Ne felejtse el figyelembe venni a héj alakját. A matematikai pontok a való életben nem repülnek. És nincsenek gömbölyű lovak. Régi szint 09-2Biológus? Izolálja a penicillint. Ez a penész a dinnyén nő, szóval tudod. Tudod, hogyan – csodálatos! Meg tudod csinálni? Közgazdász?Készítsen előrejelzést az olaj árának növekedéséről. Kész? És most fordítsa át évi 2000 vagy 200 000 dollárra az előrejelzése alapján. Játszottál már FOREX-en? Valódi pénzért? Vagy csak tudod mi az? Nemzetközi gazdaság? Pompás! Hol nyithatok offshore céget? Hong-Kongban, Írországban vagy az USA-ban. Miért? Még ha tudod is ezt, ami kétséges, aligha lesz képes megtenni, mivel valójában soha nem tetted meg. Még csak fogalmad sincs, hogyan csináld. Ó, ezt nem tanultad az egyetemen? Milyen jogon adjak olyan feladatokat, amelyekre nem vagy felkészülve? Mert ezek a való élet feladatai. Ez IS gyakorlat , csak annyit tanultál a főiskolán: gömbölyű lovak, tökéletes verseny – a való életben egyik sem létezik. De miért felejtettem el megemlítenimarketing szakember ? Mi a legjobb módja annak, hogy elköltsem az 500 dolláromat, hogy minél többen értesüljenek az előadásaimról? A reklámban? Tisztában vagy vele, hogy nemcsak a klasszikus reklámozás elavult már, hanem az USP (unique selling proposition) koncepciója is, amelyet biztos vagyok benne, hogy szinte egyedülálló csodaszerként tanítottak a főiskolán? Felejtsd el, hogy tudsz valamit. Kérdezd meg magadtól – mit tehetek? Hasznos, úgy értem? Valamiért fizetnének pénzt az emberek? Jó pénz, úgy értem? Szóval barátaim, fejezzük ki hálánkat egy olyan csodálatos tanfolyamnak, mint a CodeGym. Ennek köszönhetően nemcsak programozni fog tudni, hanem valóban képes is lesz rá. Néhány év múlva munkát is találhat, és jó pénzt kereshet. Remélem, ez a pénz elég lesz ahhoz, hogy szépen és kényelmesen élhessünk. Még egyszer elmondom, hogy ne feledje: nem számít, mit tudsz. Csak az számít, hogy milyen hasznos készségekkel rendelkezel, amelyeket az emberek szívesen fizetnének neked. Minél előbb megérted ezt, annál jobb.

Új szintet értél el

9. szint

Régi szint 09–3

1 Risha, Stack nyom

Régi szint 09–4- Hé! Ma elmondom, mi az a veremnyom. De először hadd magyarázzam meg, mi az a verem. - Képzeljen el egy köteg papírt - egy bizonyos hivatalnok megbízatását. Egy új feladatot a verem tetejére lehet tenni, ő pedig a verem tetejéről vesz fel egy feladatot. Így a feladatokat nem érkezési sorrendben végzik el. Minden alkalommal, amikor az ügyintéző átveszi az utolsó feladatot. Az ilyen gyűjtési struktúrát veremnek nevezzük . - A Java-ban van egy speciális gyűjtemény - Stack. Ebben a gyűjteményben vannak "elem hozzáadása" és "elem elvétele/elvitele" módszerei. Amint azt már tudja, az utoljára hozzáadott elem kerül először felvételre. - Hum. Nem nehéz, azt hiszem. - Bírság. Akkor hadd magyarázzam el, mi a veremnyomvan. - Képzeljük el, hogy a Java függvényben az А függvény hívja a B függvényt , az utóbbi pedig a C függvényt , amely viszont a D függvényt . Tehát a B funkcióból való kilépéshez először ki kell lépnie a C funkcióból , ehhez pedig ki kell lépnie a D funkcióból . Ez nagyon hasonlít a veremhez. - És mi a hasonlóság? - A veremben ahhoz, hogy egy bizonyos feladathoz eljuss, el kell végezned az összes rárakott feladatot is. - Nos, ez egy hasonlat, de nem vagyok benne biztos, hogy mindent jól értek-e. - Nézz ide. A Java nyelvben a verem elemek halmaza. Olyan, mint a papírlapok egy kötegben. Ahhoz, hogy felülről vegye a harmadikat, el kell vennie a második lapot, de előtte az elsőt. A lepedőket mindig teheted és veheted, de csak a tetejére teheted, és csak felülről veheted. Ugyanez vonatkozik a függvényhívásra is. Az А függvény a B , az utóbbi a C függvényt hívja meg . A А kilépéshez először ki kell lépni B-ből , ehhez pedig ki kell lépni a C- ből . - Várj egy percet. Ha jól tettem, az egész verem a következőképpen jelenik meg: "csak az utolsó lap, amely a veremre került", és "először az utoljára hívott függvénynek kell kilépnie". így van? - Igen. Tehát a függvényhívások sorrendje a "függvényhívás verem", vagy egyszerűen csak "hívás verem". Az utolsóként nevezett függvényt először le kell zárni. Nézzük a példát: Régi szint 09-5- Rendben. Azt hiszem, a függvényhívással minden világos. De mi is ez a StackTraceElement ? - A Java virtuális gép naplózza az összes függvényhívást. Erre a célra egy speciális gyűjtemény - verem. Amikor egy függvény meghív egy másikat, a JVM egy új StackTraceElement elemet helyez el ebbe a verembe. Amikor a függvény véget ér, az elem törlődik a veremből. Így ez a verem mindig naprakész információkat tárol a «függvényhívási verem» aktuális állapotáról. - Minden StackTraceElementinformációkat tartalmaz a hívott metódusról. Tehát ennek a metódusnak a nevét a getMethodName segítségével kaphatja meg . - A fenti példa ezt mutatja:
  1. Szerezd meg a "hívás verem":
  2. Iterálja a tömböt a ciklus for-each használatával . Remélem nem felejtetted el.
  3. A metódusnevek nyomtatása a System.out fájlba .
- Érdekes dolog, és láthatóan könnyű. Köszönöm, Risha!

2 Diego, Feladat a verem nyomkövetésén

- Szia Amigo! Íme egy kis feladat a verem nyomvonalának megjelenítéséhez a képernyőn.
Feladatok
1 Mindegyik metódusnak vissza kell adnia a StackTrace
Write öt metódusát, amelyek hívják egymást. Mindegyik metódusnak vissza kell adnia a StackTrace-ét.
2 Ismét StackTrace
Írjon öt egymást hívó metódust. Minden metódusnak vissza kell adnia a hívó metódusának nevét. A hívómódszert a StackTrace segítségével szerezheti be.
3 A metódusnak vissza kell adnia annak a kódnak a sorszámát, amelyet ezt a metódust
az Írjon öt egymást hívó metódust. Minden metódusnak vissza kell adnia annak a kódnak a sorszámát, amelyből ezt a metódust hívták. Használja az elem.getLineNumber() függvényt .
4 10 hívás veremkövetése
Írjon kódot, hogy 10 hívás veremnyomát kapja.
5 A metódusnak eredményt kell visszaadnia - a verem nyomkövetési mélységét
Írjon egy metódust, amely megjeleníti és visszaadja a verem nyomkövetési mélységét. A verem nyomkövetési mélysége a metódusainak száma (a listában szereplő elemek száma).

3 Elly, hibák és kivételek

- Szia Amigo! Ma egy nagyon érdekes leckénk van. Mesélek a kivételekről. A kivétel egy speciális mechanizmus a program hibáinak szabályozására. Íme néhány példa a programban előforduló hibákra:
  1. A program megpróbál egy fájlt írni a teljes lemezre.
  2. A program megpróbál meghívni egy változó metódusát, amely a null referenciát tárolja.
  3. A program megpróbál egy számot elosztani 0-val.
Ezek a műveletek hibát eredményeznek. Ez általában egy program bezárásához vezet – nincs értelme folytatni a kód végrehajtását. - Miert van az? - Van értelme forgatni a kormányt, amikor az autó leesik a szikláról? - Úgy érted, hogy a programnak véget kellene érnie? - Igen. Így volt ez korábban is. Bármilyen hiba a program leállításához vezetett. - Nagyon okos döntés. - Nem lenne jobb, ha megpróbálna dolgozni? - Igen. Beírtál egy hatalmas szöveget az MS Word-be, elmented, nincs elmentve, de a program azt mondja, hogy minden rendben. És folytatod a gépelést. Hülyeség, nem? - Igen. - Aztán a programozók egy érdekes lépéssel álltak elő:minden függvény visszaadta a munkája állapotát. A 0 azt jelentette, hogy a függvény úgy működött, ahogy kellett volna, bármilyen más érték – hogy hiba történt : ez az érték egy hibakód. - De ennek a megközelítésnek volt egy hátránya. Minden (!) függvényhívás után ellenőrizni kellett a függvény által visszaadott kódot (számot). Először is kényelmetlen volt: a hibakezelő kód ritkán futott le, de mindig meg kellett írni. Másodszor, maguk a függvények gyakran különböző értékeket adnak vissza – mi a teendő velük? - Igen. Ezt akartam kérdezni. - Aztán jött a fényes jövő - megjelentek a kivételek és a hibakezelés. Így működik:
  1. Hiba esetén a Java virtuális gép létrehoz egy speciális objektumot – kivételt –, amely tartalmazza a hibával kapcsolatos összes információt. A különböző hibákhoz különböző kivételek vannak.
  2. Ekkor ez a kivétel arra kényszeríti a programot, hogy azonnal megszakítsa az aktuális függvényt és a következő függvényt, amíg ki nem lép a fő metódusból. Ezt követően a program leáll. A Java fejlesztők ezt a folyamatot "visszatekerik a hívási verem"-nek nevezik.
- De azt mondtad, hogy a program nem fog biztosan kilépni. - Így van, mert van mód a kivételre fogni. Bármikor és ahol csak szüksége van rá, írhat egy speciális kódot, hogy felfogja ezeket a kivételeket, és tegyen valami fontosat. - Ehhez van egy speciális konstrukciós próbafogás . Nézze meg, hogyan működik: Régi szint 09-6- Miért «A method1 hívása után. Soha nem jelenik meg» nem jelenik meg a képernyőn? - Örülök, hogy rákérdeztél. A 25. sorban van nullával való osztás. Ez hibához vezet – kivétel. A Java virtuális gép létrehozta a hibainformációkat tartalmazó ArithmeticException objektumot. Ez az objektum kivétel. - Kivétel történt a method1() metóduson belül .Ez a módszer azonnali leállítását eredményezte. Ez a main metódus leállásához is vezetne , ha nem lenne try-catch blokk. - Ha kivétel történik a try blokkon belül, akkor az a catch blokkba kerül . A blokkpróbában lévő kód többi része nem kerül végrehajtásra, a blokkfogás végrehajtása azonnal elindul. - Nem egészen értem. - Más szóval ez a kód így működik:
  1. Ha kivétel történik a try blokkon belül, akkor az ebben a blokkban lévő kód már nem fut le, hanem elindul a blokkfogás végrehajtása .
  2. Ha nem történt kivétel, a try blokk a végéig végrehajtásra kerül , és a catch soha nem kerül végrehajtásra .
- Ahm! - Képzeljük el, hogy minden metódushívás után ellenőrizzük, hogy a meghívott metódus magától vagy kivétel miatt megszűnt-e. Ha volt kivétel, a JVM elkezdi végrehajtani a blokkfogást, ha az elérhető, és elkap egy kivételt. Ha nincs fogási blokk, a JVM leállítja az aktuális metódust. Ezután ugyanaz az ellenőrzés kezdődik a metódusban, amely az aktuális metódust hívta. - Most azt hiszem, megkaptam. - Rendben van. - És mi az a Kivétel a zárblokkon belül? - Minden kivétel az Exception osztályból örökölt osztály. Bármelyiket elkaphatjuk, ha a fogásban megadjuk az osztályátblokkot, vagy mindegyiket egyszerre egy közös szülőosztály Kivétel megadásával. Ezután az e változóból (ez a változó egy kivételobjektum hivatkozását tárolja) minden szükséges információt megkaphat a hibáról. - Nagy! És mi van, ha az én módszeremben különböző kivételek fordulnak elő, kezelhetem őket különböző módon? - Neked kell. Ezt a következőképpen teheti meg: - A try blokk több fogásiRégi szint 09-7 blokkot is tartalmazhat , amelyek mindegyike elkapja a saját típusú kivételeket. - Umph. Nos, nagyjából értem. Persze én magam nem írok ilyesmit. Viszont nem fogok megijedni, ha találkozom egy ilyen kóddal.

4 Elly, RuntimeException, dobások

Régi szint 09-8- Úgy döntöttem, hogy ma egy másik témát hozok fel. A Java-ban az összes kivétel két típusra oszlik: ellenőrzött/ellenőrzött és ellenőrizetlen/ellenőrzött . A bejelölt kivételeket el kell fogni, a nem bejelölteket el lehet fogni , de ez nem kötelező . - Lehet-e szándékosan kivételeket dobni egy kódba? - A kódodban te magad is dobhatsz kivételeket. Akár saját kivételeket is írhatsz. De később belemélyedünk ebbe a gödörbe. Most tanuljuk meg, hogyan kell dolgozni a Java virtuális gépek által kiadott kivételekkel. - RENDBEN. - Ha kivételek ClassNotFoundException és FileNotFoundExceptionmetódusban dobnak (megjelennek), a programozónak meg kell adnia azokat egy metódus aláírásában (metódus fejlécében). Az ilyen kivételeket ellenőrzik. Általában így néz ki: Régi szint 09-9- Tehát csak dobásokat írunk és kivételeket listázunk vesszővel elválasztva. Jobb? így van? - Igen. De van még egy érdekesség. Az alábbi példa összeállításához a method1()-t meghívó metódusnak vagy el kell fogadnia ezeket a kivételeket , vagy előre kell dobnia. Ha a bejelölt kivételt előre szeretné dobni, meg kell adnia a metódus fejlécében . - Még egyszer, ha a metódusban olyan metódust akarunk hívni, amelynek fejlécében a FileNotFoundException ,…akkor a következő két dolog egyikét kell tennie:
  1. a kivételek elkapásához FileNotFoundException, … A kódot, ahol veszélyes metódust hív meg, egy try-catch blokkal
    kell csomagolnia
  2. hogy ne kapja el a kivételeket FileNotFoundException,…
Ezeket a kivételeket hozzá kell adnia a main metódus dobáslistájához . - Mondana egy példát? - Nézd meg: - Ezt a példát nem fordítjuk le, mert a main metódus meghívja a method1() metódust, ami kivételeket dob, amelyeket el kell fogni. - A példa összeállításához hozzá kell adni a kivételkezelést a main metódushoz . Ezt kétféleképpen teheti meg: - És itt a try-catch segítségével fogjuk meg : - Egyre világosabb, de nagyon kevés. - Nézze meg az alábbi példát: - Még mindig van kivétel - RuntimeException és az abból örökölt osztályok.Régi szint 09-10Régi szint 09-11Régi szint 09-12Régi szint 09-13Nem kötelező elkapni vagy eldobni őket. Ezek ellenőrizetlen kivételek. Ezeket a kivételeket nehéz megjósolni, így szinte lehetetlen megjósolni előfordulásukat. Ugyanezt megteheti velük, de nem kell megadni őket dobásban .

5 Risha, A hívásverem görgetése, hogyan kell ezt megtenni kivételes esetekben

- Szeretnék egy kicsit többet elmondani a kivételek működéséről. Az alábbi példa ezt magyarázza: Régi szint 09-14- Nem értem. - Rendben. Elmagyarázom, mi a helyzet. - A bal oldali példában több metódust hívunk meg láncrendben. A Method2() -ben kifejezetten kivételt hozunk létre és dobunk (hiba kezdeményezésére). - A jobb oldali példa mutatja, mi történik. Nézd meg a metódust2() . A kivétel létrehozása így alakul: létrehozunk egy RuntimeException típusú objektumot, eltároljuk egy speciális változó kivételben , és azonnal kilépünk a metódusból – return . - Az 1-es metódusban a metódus2 hívása után van egy ellenőrzés,van-e kivétel vagy nincs; Ha van kivétel, akkor a method1 azonnal leáll. Ez az ellenőrzés implicit módon történik az egyes (!) Java metódusok meghívása után. - Azta! - Pontosan. - A Method main jobb oldali oszlopában leírtam, hogy mi történik, ha kivételt elkap a try-catch blokk. Ha nem volt kivétel, a kód a tervek szerint folytatódik. Ha volt kivétel a catch -ben megadott típusból , akkor azt kezeljük. - És mit jelent a dobás és az instanceof ? - Nézd meg a bal oldali utolsó sort, dobj új futásidejű kivétel(eke)t. Ily módon kivételt hozunk létre és dobunk ki. Ez csak egy példa. Egyelőre nem tesszük meg. - A jobb oldali blokkban található « а instanceof B » paranccsal ellenőrizzük, hogy az a objektum B típusú -e . Azaz, hogy a változókivételben tárolt objektum RuntimeException típusú-e . Ez egy logikus kifejezés. - Nos, ez egy kicsit világosabb.

6 Diego, Kivételfogási feladat

- Nézz ide! Diego bácsi kevés elkapási feladatot hozott neked. Sok szerencsét. Szerintem szükséged lesz rá. Heh. Régi szint 09-15- Szia Amigo! Íme néhány érdekes kivételfogási feladat.
Fogós feladatok
1 1. Kivétel számokkal történő műveleteknél.
Fogja meg a kód futtatásakor fellépő kivételt:
int a = 42 / 0;
A kivétel megjelenítése a képernyőn, megadva annak típusát
2 2. Kivétel a karakterláncokkal végzett műveletek során.
Fogja meg a kód futtatásakor fellépő kivételt:
String s = null;
String m = s.toLowerCase();
A kivétel megjelenítése a képernyőn, megadva annak típusát.
3 3. Kivétel a tömbökkel végzett műveleteknél.
Fogja meg a kód futtatásakor fellépő kivételt:
int[] m = new int[2];
m[8] = 5;
A kivétel megjelenítése a képernyőn, megadva annak típusát.
4 4. Kivétel List gyűjteményekkel való munkavégzés esetén
Fogja meg a kód futtatásakor fellépő kivételt:
ArrayList<String> list = new ArrayList<String>();
String s = list.get(18);
A kivétel megjelenítése a képernyőn, megadva annak típusát.
5 5. Kivétel Map gyűjteményekkel való munkavégzéskor.
Fogja meg a kód futtatásakor fellépő kivételt:
HashMap<String, String> map = new HashMap<String, String>(null);
map.put(null, null);
map.remove(null);
A kivétel megjelenítése a képernyőn, megadva annak típusát.
- Tipp: először írjon egy programot, majd nézze meg, hogy milyen kivétel történik, majd változtassa meg a kódot, és rögzítse a kivételt.

7 Risha, Hogyan működik a többszörös fogás

Régi szint 09-16- Most még néhány érdekes előadás. Nagyon szeretek tanítani. - Szeretném elmondani, hogyan működik a többszörös fogás . Valójában ez nagyon egyszerű: amikor a try blokkban kivétel történik , a program végrehajtása átkerül az első catchre . - Ha a blokkfogás zárójelben megadott típusa megegyezik a kivétel-objektum típusával, akkor a kód végrehajtása a {}-on belül kezdődik. Ellenkező esetben a következő fogáshoz megyünk . Az ellenőrzés ott megismétlődik. - Ha nincs több fogási blokk, de a kivételt nem sikerült elkapni, akkor az előredobásra kerül, és az aktuális metódus megszakad. - Látom. Az a fogás kerül végrehajtásra, amelynek típusa megegyezik a kivétel típusával. - Igen, igaz. Valójában ez egy kicsit bonyolultabb: a lényeg, hogy az osztályok örökölhetők egymástól. Ha a «Cow» osztály az «Állat» osztályból öröklődik, a «Cow» típusú objektum nem csak «Cow» típusú változóban tárolható, hanem egy «Állat» típusú változóban is. . - És akkor mi van? - Mivel az összes kivétel az Exception vagy a RuntimeException osztályból öröklődik (amely szintén az Exception osztályból öröklődik ), mindegyik elkapható a catch (Exception e) vagy a catch (RuntimeException e) parancsokkal . - És akkor mi van? - Ez azt jelenti,először is elkaphat bármilyen kivételt a catch(Exception e) paranccsal . Másodszor, a fogási blokkok sorrendje számít. Példák: - A 0-val való osztásból származó aritmetikai kivételt a második fogás fogja el. Régi szint 09-17- Az alábbi példában az ArithmeticException az első fogásban van elkapva , mivel az összes kivétel osztálya a kivételtől öröklődik. Tehát a kivétel minden kivételt elkap . Régi szint 09-18- Az alábbi példában az ArithmeticException kivételt a rendszer nem fogja, hanem továbbítja a hívó metódushoz. Régi szint 09-19- Nos, most már egyre világosabb. Ezek a kivételek nem olyan egyszerűek. - Csak úgy tűnik. Valójában ez az egyik legegyszerűbb dolog a Java-ban. - Kétlem, hogy örüljek vagy idegeskedjek emiatt…

8 Diego, Több kivételfogási feladat

- Szia Amigo! Tegnap berúgtam és túlbonyolítottam a feladataidat, de remélem, nincs benned kemény érzés, és mindegyiket megoldod? Ez a saját érdekedben van. Itt:
Feladatok
1 1. Kivételek
Létezik egy módszer, amely két kivételt az Exception- ből , a másik kettőt pedig a RuntimeException- ből örökölt : NullPointerException , ArithmeticException , FileNotFoundException és URISyntaxException . A NullPointerException és a FileNotFoundException

elkapására van szükség , de az ArithmeticException és az URISyntaxException elkapására nem . Hogyan kell csinálni?
2 2. Kivételek elfogása
Három kivétel van, amelyek szekvenciálisan öröklődnek a Kivételtől :
class Exception1 kiterjeszti Exception
class Exception2 kiterjeszti Exception1
class Exception3 kiterjeszti Kivétel2
Van egy metódus, ami a következőképpen írható le:
public static void metódus1() dob Exception1, Exception2, Exception3

Írj egy fogást blokkolja a három kivétel1 , kivétel2 és kivétel3 elkapásához
3 3. Szelektív kivételek elkapása
1. Nézze meg, milyen kivételeket dob ​​a BEAN.methodThrowExceptions metódus .
2. A processExceptions() metódusnak meg kell hívnia a BEAN.methodThrowExceptions metódust , és kezelnie kell a kivételeket:
2.1. Ha kivétel FileSystemException történik, akkor naplózza azt a BEAN.log metódus meghívásával , és dobja előre
a 2.2. Ha kivétel CharConversionException vagy bármely más IOException történik, csak naplózza a BEAN.log
3 metódus meghívásával. Adja hozzá a 2.1-ben továbbítandó kivétel osztályát/típusát. a folyamathozKivételek()módszer aláírása.
4. Kezelje a fennmaradó kivételt a main() metódusban, és naplózza. Használja try..catch

Tipp:
Ha elkapta a MyException kivételt , amelyet nem akart elkapni, akkor a következő kóddal dobhatja előre:
catch (MyException e) {
throw e;
}
4 4. Ellenőrzött kivételek elkapása Kezelje az összes ellenőrzött kivételt a processExceptions()
metódusban . Minden egyes ellenőrzött kivételt meg kell jelenítenie a képernyőn. Csak egy blokkpróbát használhat .

5 5. Nem ellenőrzött kivételek elkapása Kezelje az összes nem ellenőrzött kivételt a processExceptions()
metódusban . Meg kell jelenítenie a képernyőn az egyes előforduló kivételek veremnyomát a printStack() metódus használatával . Csak egy blokkpróbát használhat .

9 Professzor, Előadás a kivételekről

- Ma van egy szuper érdekes témánk - kivételek. Abban az időben, amikor a fiatal tudósokat és programozókat nagyon izgatta ez a téma… - Elnézést, el kell mennem a laborba. Itt vannak az előadás jegyzetei. Szerintem rájössz magadtól. Itt: Java kivételek (Oracle dokumentáció) Kivételkezelés Java-ban (Java T pont) Java - Kivételek kezelése (oktatóanyagok pont) Alapszintű Java kivételkezelés

10 Julio

- Amigo, mi a véleményed a mai leckéről? A pozitron agyad még nem működött? Diego feladatai elegendőek ahhoz, hogy bárkit is megviseljen. Igyunk egy sört és lazítsunk. Még mindig állsz?

11 Kapitány Mókus

- Szia katona! - Jó reggelt uram! - Van egy nagyszerű hírem a számodra. Íme egy gyors ellenőrzés, amellyel erősítheti képességeit. Csináld minden nap, és nagyon gyorsan fejleszted képességeidet. A feladatokat kifejezetten az Intellij IDEA-ban való használatra tervezték.
További feladatok az Intellij Idea programban
1 1. Osztás nullával Hozzon létre egy nyilvános static void divisionByZero()
metódust , ahol tetszőleges számot kell nullával osztania, és megjelenítenie kell a képernyőn az osztás eredményét. Tekerje a divisionByZero() metódushívást try..catch- be . Jelenítse meg a képernyőn a kivétel verem nyomkövetését a kivétel.printStackTrace() metódus használatával .
2 2. Visszaszámlálás 10-től 0-ig
Írjon egy ciklust a visszaszámláláshoz 10-től 0-ig. Használja a Thread.sleep(100) -t a késleltetéshez;
Tekerje az alváshívást egy try..catch -be .
3 3. Csomagoljon egy metódust try..catch-be
Számok olvasása a billentyűzetről. Írjon egy kódot a számok billentyűzetről történő olvasásához egy külön readData() metódusba .
Csomagolja be a metódus teljes törzsét (a readData() metóduson belüli teljes kódot, kivéve a lista deklarációját, ahol a számok tárolódnak) egy try..catch formátumba .

Ha a felhasználó szám beírása helyett valamilyen szöveget ír be, a módszernek fel kell fognia a kivételt, és megjelenítenie kell a képernyőn az összes korábban beírt számot.
Számok megjelenítése a képernyőn. Minden számnak új sorban kell lennie. A számsorrendnek olyannak kell lennie, mint a bevitelnél.
4 4. Dátum konverter
Olvasson be a billentyűzetről egy dátumot «2013.08.18.» formátumban.
Jelenítse meg a képernyőn azt a dátumot «2013. AUG. 18.» formában.
Használja a Date és SimpleDateFormat objektumokat .
5 5. Magánhangzók és mássalhangzók
Írjon programot, amely beolvassa a sorokat a billentyűzetről!
A programnak két karakterláncot kell megjelenítenie a képernyőn:
1) az első karakterlánc magánhangzókat tartalmazzon
2) a második karakterlánc mássalhangzókat és írásjeleket tartalmazzon a beírt szövegből.
A karaktereket szóközzel válassza el.

Példa bemenet:
Stop look listen
Példa kimenet:
oooie
stplklstn
6 6. A Piroska meséje
1. Öt osztály van: Piroska, nagymama, pogácsa, favágó, farkas. 2. Minden osztálynak két ArrayList
típusú mezője van : killed és ate. 3. A szükséges tárgyak már elkészültek (búra, nagymama, ...). 4. Hozza létre a megfelelő kapcsolatot (ki evett és ölt meg kit), hogy megkapja a „Piroska” logikáját.

7 7. Statikus módosítások mozgatása
Mozgassa a statikus módosítókat a kód fordításához.
8 8. Számtömbök listája
Hozzon létre egy listát, amelynek elemei számtömbök. Adjon hozzá a listához öt objektumtömböt, amelyek hossza rendre 5, 2, 4, 7, 0. Töltse ki a tömböket bármilyen adattal, és jelenítse meg a képernyőn.
9 9. Tíz macska
Hozzon létre egy Cat osztályt egy mezővel String name .
Hozzon létre egy szótárt Térkép<String, Cat> , adjon hozzá 10 macskát a «Név» - «Cat» modellhez. Szerezzen be egy névkészletet
a térképről , és jelenítse meg a készletet a képernyőn.
- Azok a feladatok a zöldeknek szóltak. Hozzáadtam a nagyobb bonyolultságú bónuszfeladatokat. Csak felső fegyverekhez.
Bónusz feladatok
1 1. A program nem fordul le és nem fut. Javítsd meg.
Feladat: A program olvasson be a billentyűzetről két fájlnevet, és másolja az első fájlt a második név által megadott helyre.
2 2. Adjon hozzá új funkciókat a programhoz.
Régi feladat: A programnak be kell olvasnia a billentyűzetről két fájlnevet, és át kell másolnia az első fájlt a második név által megadott helyre.
Új feladat: A programnak be kell olvasnia a billentyűzetről két fájlnevet, és át kell másolnia az első fájlt a második név által megadott helyre.

Ha a megadott nevű fájl (amelyet másolni fog) nem létezik, a programnak a képernyőn a „Fájl nem létezik” üzenetet kell megjelenítenie, és meg kell próbálnia még egyszer beolvasni a fájlnevet a konzolról, mielőtt elolvasná a a második (cél) fájl neve.
3 3. Algoritmus tanulása és gyakorlása.
Olvassa el a billentyűzetről a szavak és számok listáját. Jelenítse meg a képernyőn a szavakat növekvő, a számokat pedig csökkenő sorrendben.

Példabevitel:
Cseresznye
1
bab
3
alma
2
0
görögdinnye

Példa kimenet:
alma
3
bab
2
cseresznye
1
0
görögdinnye
Hozzászólások
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION