Java: výnimka a ich spracovanie

Akýkoľvek program bude fungovať stabilne len vtedy, ak je upravený jeho zdrojový kód a neexistujú žiadne podmienky, ktoré by mohli spôsobiť nepredvídané situácie. Proces chytenia možných porúch sa uskutočňuje v programovacom štádiu. Za to vývojár berie do úvahy všetky predvídateľné výsledky a pokúša sa obmedziť chybu takým spôsobom, že nedokáže prerušiť program alebo spôsobiť jeho zlyhanie.

Ak sa môže vyžadovať spracovanie výnimiek.

V programe Java môžu byť výnimky spôsobené nesprávnym zadávaním používateľov, nedostatkom zdrojových zdrojov potrebných na to, aby program fungoval, alebo náhlym vypnutím siete. Pre pohodlné používanie programu vytvoreného vývojárom je potrebné kontrolovať vznik mimoriadnych situácií. Spotrebiteľ by nemal čakať, kým ukončí ukončenie programu záclon, stratí údaje v dôsledku nesprávnych výnimiek alebo jednoducho často zaznamená, že sa niečo pokazilo.


Manipulácia s výnimkou Java

Čo je potrebné vziať do úvahy? Jazyk jazyka Java má vlastnú funkciu spracovania výnimiek. Samozrejme, veľké percento chýb sa zachytilo ešte vo fáze kompilácie, keď systém automaticky oznámi, že nie je možné ho ďalej používať. Existuje však aj typ výnimky, ktorý sa vyskytuje pri spustení programu. Vývojár musí byť schopný to predvídať a navrhnúť kód takým spôsobom, že nespôsobí chybu, ale zvlášť to zvládne alebo prejde riadením do inéhopobočka V systéme Java je tento druh výnimky uložený prekladačom, takže sú známe typické problémy a majú vlastnú štandardnú schému spúšťania.

Typické výnimky

Najjednoduchším príkladom, v ktorom možno získať výnimku, je rozdelenie. Napriek všetkej svojej jednoduchosti, vo vyjadrení, ako deliteľ môže byť nula, čo povedie k chybe. No, ak jeho predstave možno predvídať a zabrániť. Táto možnosť však nie je vždy k dispozícii, takže výnimka by sa mala zorganizovať hneď, keď nastane "nulová delenie".


V Java mechanizmus obrábania na zachytenie chyby vyzerá takto:
  • v oddelení je vytvorený objekt vylúčenia, ako aj akýkoľvek iný;
  • prirodzený priebeh programu sa preruší;
  • mechanizmus vylúčenia sa snaží nájsť alternatívny spôsob rozšírenia kódu;
  • nájdenie bezpečného vykonania programu v procesore, práca alebo bude obnovená, alebo implementácia výnimky špeciálnym spôsobom.
  • Najjednoduchší príklad chyby môže vyzerať takto: if (a == null) hodí nový NullPointerException (); Tu je premenná a kontrolovaná na inicializáciu, to znamená, že nie je rovná referencii na objekt null. Ak vznikne táto situácia a vyžaduje špeciálne spracovanie, vylúčenie sa vyhodí hádzať novým NullPointerException ().

    Niektoré podrobnosti o kľúčových slovách

    Pri riešení výnimiek často používajú kľúčové slová Java na označenie akcie. V tomto programovacom jazyku je päť:
  • Skúste. Toto kľúčové slovo už bolo splnené a znamená to, že ide o prechod na oblasť kódu, ktorá môžegenerovať výnimku. Blok je kučeravé zátvorky {}.
  • Úlovok. Zachytáva požadovaný typ výnimky a zodpovedajúcim spôsobom ho spracováva.
  • Nakoniec. Toto kľúčové slovo je nepovinné a slúži na vykonanie ľubovoľnej oblasti kódu, ktorá je v každom prípade vyžadovaná, aj keď nie je zachytená žiadna výnimka. Okamžite po skúške bloku.
  • Hádzať - umožňuje vytvárať vylúčenie jazyka Java v ľubovoľnom mieste kódu.
  • Vhadzovanie - kľúč, ktorý je uvedený v podpisu metódy. To znamená, že nasledujúci kód môže uvádzať výnimku z určeného typu Java. Táto značka slúži ako signál pre vývojárov, čo by sa malo brať do úvahy - metóda nemusí fungovať spôsobom, akým sa očakáva.
  • Prijaté s try

    Samozrejme, Java výnimka predpokladá, že bude špeciálne spracovaná. Najvhodnejšie je to urobiť, ak je oblasť kódu zablokovaná v bloku. Ktoré môžu obsahovať výnimku. Pri vykonávaní takéhoto kódu virtuálny stroj nájde nepredvídateľnú situáciu, pochopí, že je v kritickom bloku a prechádza kontrolou do oblasti spracovania.
    Kód Java je zabalený do špeciálneho bloku try, v rámci ktorého je možné generovať výnimku. Takto položil naraz niekoľko nepredvídateľných situácií, ktoré sa chytia na jednom mieste bez toho, aby sa prekonali kódy. Najbežnejší kód s procesorovou jednotkou vyzerá takto: try {//Identifikuje kód, ktorý môže vygenerovať výnimku} catch (identifikátor typu_exclusion_1) {//Toto spracovanie výnimky sa robí podľa jeho typu a podmienok; } úlovok (typ výnimky_2)identifikátor_2) {//V tomto prípade sa spracovanie výnimky vykonáva podľa typu a podmienok; } Kľúčové slovo úlovku uvádza, že kód výnimky sa má spracovať tak, ako je popísané nižšie, za predpokladu, že sa zhoduje s jeho typom. Identifikátor ID môže byť použitý vo vnútri bloku kódu spracovania ako argumenty.

    Nakoniec

    Ako sa ukázalo z predchádzajúcej kapitoly, blokujte výnimky týkajúce sa úlovkov a spracúvajte ich. Veľmi často však vzniká situácia, keď kód musí prejsť, bez ohľadu na to, či boli chyby chytené. Za to je kľúčové slovo nakoniec. Slúži na zvýšenie hodnôt rôznych čítačov, uzatvárania súborov alebo sieťových pripojení.
    V tejto časti existuje niekoľko blokov úlovku s fiktívnymi výnimkami z výlovu. Napríklad kód obsiahnutý v pokuse generuje nepredvídateľný prípad za studena. Potom sa výrazy "Chladené za studena!" A "Je to niečo, na čo by som sa trochu rozveselil?" Zobrazí sa v konzole. To znamená, že blok sa konečne vykoná v každom prípade. V skutočnosti je spôsob, ako sa vyhnúť štartu. Je spojená s dokončením virtuálneho stroja. Nájdenie spôsobu jej implementácie možno nájsť na internete.

    Hľadanie kľúčových slov

    Hádzanie vytvára výnimku. Syntax vyzerá takto: hodí nový NewException (); Tým sa vytvorí nová výnimka s typom NewException (). Ako typ už možno použiť v štandardných triedach knižníc Java a predtým definovaný vývojárom ich vlastnej produkcie. Takáto konštrukcia je zahrnutá do popisu akejkoľvek metódy, ktorej výzva by potom mala nastať v tryskovom bloku, aby bolamožnosť ju zachytiť.

    kľúčové hádže

    Čo keď vo vývoji situácie, keď tento spôsob môže vytvoriť výnimku, ale nie je schopný správne proces. Za týmto účelom sa pri podpise metódy uvádza slovo hody a typ možného vylúčenia. Tento štítok je zvláštnym sprievodcom pre vývojárov klientov, že metóda nie je schopná spracovať vlastnú výnimku. Okrem toho, ak je typ chyby overený, kompilátor ju núti explicitne špecifikovať.

    Skúste zdroja

    V Java verzia 7 vývojári zahrnuté také dôležité inovácie ako spracovateľskú jednotku s prostriedkami vyskúšať. Mnoho vytvorených objektov v jazyku Java po ich použití by malo byť uzavreté, aby sa ušetrili zdroje. Skôr to muselo brať do úvahy a zastaviť takéto prípady ručne. Teraz majú rozhranie AutoClosable. Pomáha automaticky zatvárať predtým používané objekty nachádzajúce sa v skúšobnom bloku. Vďaka tomuto prístupu sa kód písania stal vhodnejším a jeho čitateľnosť sa výrazne zvýšila.

    Vlastné Java trieda Exception

    je popísané programovací jazyk tvorcovia zahŕňal veľa aspektov konštrukčných typov mimoriadnych udalostí. Avšak, všetky možnosti, aby sa zabránilo výsledok udalostí príde ako Java implementovaný definovať svoje vlastné výnimky, ktoré vyhovuje potrebám konkrétneho kódu. Najjednoduchší spôsob vytvorenia je dediť z najdôležitejšieho kontextu objektu.
    Vyskytla sa postupnosť výnimky, trieda používaná na definovanie vlastných výnimiek. MyException má dva konštruktory - jeden štandardne,druhá s argumentom msg type String. Potom verejná trieda FullConstructors implementuje metódu f, ktorej podpis obsahuje hody MyException. Toto kľúčové slovo znamená, že f môže uvádzať výnimku do typu MyException Java. Potom v tele spôsobu výstup textovej informácie do konzoly a veľmi generácie MyException, pomocou hodu. Druhá metóda sa mierne líši od prvej metódy, ktorá pri vytváraní výnimky prechádza reťazcovým parametrom, ktorý sa bude zobrazovať v konzole pri píšťale. V hlavnom prípade je zrejmé, že f () a g () sú umiestnené v skúšobnom kontrolnom bloku a kľúčové slovo úlovku je nakonfigurované pre úlovok MyException. Výsledok spracovania je výstupom chybovej správy v konzole:
    Takže bolo možné pridať vylúčenie Java, vytvorené sami.

    Architektúra výnimiek

    Rovnako ako všetky objekty v jazyku Java, výnimky sú tiež zdedené a majú hierarchickú štruktúru. Koreňový prvok všetkých chýb, ktoré sú v tomto programovacom jazyku vyhodené, je trieda java.lang.Throwable. Z toho dedia dva typy - Chyba a výnimka.
    Chyba - upozorní vás na kritické chyby a nekontroluje vylúčenie Java. Zachytenie a spracovanie takýchto údajov vo väčšine prípadov prebieha a nevyžaduje zavedenie konečného programu do kódu. Najčastejšie používanou triedou na vytváranie a analýzu výnimiek je výnimka. Ktorý zase je rozdelený na niekoľko oblastí, vrátane RuntimeException. RuntimeException zahŕňa vylúčenia po spustení, ktoré sa vyskytujú počas spustenia programu. Všetky triedy, ktoré z neho dedia, nepatria.

    Často sa vyskytujúvýnimka

    Vo výnimke Javy, ktorej zoznam je uvedený nižšie, sa používa najčastejšie, takže je vhodné opisovať každú z nich podrobne:
  • AritmeticException. Zahŕňa to chyby spojené s aritmetickými operáciami. Najpozoruhodnejším príkladom je rozdelenie na nulu.
  • ArrayIndexOutOfBoundsException - Odkaz na číslo prvku poľa, ktoré presahuje jeho celkovú dĺžku.
  • ArrayStoreException - Pokus o priradenie elementu poľa nekompatibilného typu.
  • ClassCastException je pokus o nesprávne zaradenie jedného typu do druhého.
  • IllegalArgumentException - pri volaní metódy použite nesprávny argument.
  • NegativeArraySizeException je výnimkou pri vytváraní množstva negatívnych dimenzií.
  • NullPointerException - Použitie referencie na null je nesprávne.
  • NumberFormatException - nastane, keď je reťazec nesprávne prevedený na číslo.
  • ​​
  • Nepodporovaná OperáciaExcepcia - operácia nie je podporovaná.
  • Tieto príklady nie sú kontrolované pre typy výnimiek Java. Toto vyzerá skontrolované:
  • ClassNotFoundException - trieda nebola nájdená.
  • IllegalAcccessException - Obmedzenie prístupu do triedy.
  • InterruptedException - prerušuje tok závitu.
  • NoSuchFieldException - neexistuje povinné pole.
  • Výklad výnimiek

    Pokiaľ ide o časté výnimky, treba poznamenať, že ich výklad v priebehu vývoja môže byť nesprávne pochopený. Nižšie je uvedený malý zoznam, ktorý vysvetľuje podrobnejšie, kedy môže dôjsť k neplánovanej situácii.
    NullPointerException. Prvá výnimka, keď existuje výnimka, je odkaz na odkaz na objekt, ktorý sa rovnánull. To platí aj pre metódy nulovej inštancie triedy. NullPointerException môže byť hodený av prípade získania dĺžky poľa je null. Zabránenie takýmto situáciám pomôže pravidelne skenovať objekty za hodnotu null. ArrayIndexOutOfBoundsException. Akýkoľvek program nemôže existovať bez použitia polí. Časté zaobchádzanie s nimi môže spôsobiť chyby. Existuje výnimka, keď sa vývojár pokúsi získať prístup k prvku poľa, ktorý nie je v zozname indexov. Požadovaná hodnota je napríklad väčšia ako dĺžka alebo menšia ako nula. Veľmi často to vyplýva zo skutočnosti, že faktúra v poli začína od začiatku.

    Závery

    Spracovanie výnimiek Java - výkonné prostredie nástroja, ktoré veľmi uľahčuje prácu programátora a umožňuje mu vytvoriť čistý a bezchybný kód. Stav a povesť developerskej spoločnosti závisia od toho, ako hladká a stabilná aplikácia funguje.
    Samozrejme, vo viac menej jednoduchých programoch je oveľa jednoduchšie sledovať situácie v oblasti outsourcingu. Ale vo veľkých automatizovaných komplexoch pre niekoľko stoviek tisíc riadkov je to možné len v dôsledku dlhého ladenia a testovania. Pokiaľ ide o výnimky Java, chyby, ktoré vznikajú v niektorých aplikáciách, jednotlivé spoločnosti ponúkajú odmenu, keď ich nájdu nadšenci. Obzvlášť cenené sú tie, ktoré spôsobujú porušenie bezpečnostných pravidiel softvérovým balíkom.

    Súvisiace publikácie