Java: výjimka a jejich zpracování

Každý program pracuje stabilně pouze v případě, že je jeho zdrojový kód upraven a neexistují žádné podmínky, které by mohly způsobit nepředvídané situace. Proces chycení možných poruch se provádí v programovacím kroku. Za to vývojář bere v úvahu všechny předvídatelné výsledky a pokouší se omezit chybu takovým způsobem, že nedokáže porušit program nebo způsobit jeho zhroucení.

Je-li vyžadováno zpracování výjimek.

V Javě mohou být výjimky způsobeny nesprávným vstupem uživatele, nedostatečným zdrojovým prostředkem potřebným pro práci s programem nebo náhlým vypnutím sítě. Pro pohodlné používání programu vytvořeného vývojářem je nutné kontrolovat vznik výjimečných situací. Spotřebitel by neměl čekat, až skončí vypnutí programu závěsů, ztratí data v důsledku nesprávných výjimek nebo prostě často zaznamená, že se něco stalo.


Zpracování výjimek v jazyce Java

Co je třeba vzít v úvahu? Jazyk Java má vlastní zabudovanou funkci zpracování výjimek. Samozřejmě, velké procento chyb je stále chyceno ve fázi kompilace, kdy systém automaticky oznamuje, že ji nelze dále používat. Existuje však i typ výjimky, který nastane, když je program spuštěn. Vývojář musí být schopen tuto předpověď předvídat a navrhnout kód takovým způsobem, že nezpůsobí chybu, ale zvládne to zvláštním způsobem nebo předá správu jinémupobočka V jazyce Java je tento druh výjimky uložen překladačem, takže jsou známy typické problémy a mají vlastní standardní schéma provádění.

Typické výjimky

Nejjednodušším příkladem, kterým lze dosáhnout výjimky, je rozdělení. Navzdory všem jeho jednoduchosti, ve výrazu, jako dělitel může být nula, což povede k chybě. No, jestliže jeho vzhled může být předvídán a zabráněno. Tato možnost však není vždy k dispozici, takže výjimka by měla být okamžitě uspořádána, pokud je "nulová rozdělení".


V Javě vypadá obráběcí mechanismus pro zachycení chyby takto:
  • v oddělení je vytvořen objekt vyloučení, stejně jako jakýkoli jiný;
  • přirozený průběh programu se přeruší;
  • mechanismus vyloučení se pokouší najít alternativní způsob rozšíření kódu;
  • zjištění bezpečného provedení programu v procesoru, práce nebo bude obnovena, popř. Výjimku zvláštním způsobem.
  • Nejjednodušší příklad chyby může vypadat takto: if (a == null) hodí nový NullPointerException (); Zde je proměnná a kontrolována pro inicializaci, tj. Není rovna referenci na objekt null. Pokud vznikne tato situace a vyžaduje speciální zpracování, vyloučení je vyhozeno za použití házení nového NullPointerException ().

    Některé podrobnosti o klíčových slovech

    Při vyřizování výjimek je často nutné používat klíčová slova Java k označení akce. V tomto programovacím jazyce je pět:
  • Zkuste. Toto klíčové slovo již bylo splněno a znamená to přechod na kódovou oblast, která můževygenerovat výjimku. Blok je kuželovité závorky {}.
  • Úlovek. Zachycuje požadovaný typ výjimky a odpovídajícím způsobem jej zachází.
  • Nakonec. Toto klíčové slovo je volitelné a slouží k provádění jakékoli oblasti kódu, která je v každém případě vyžadována, i když není zachycena žádná výjimka. Ihned po vyzkoušení bloku.
  • Throw - umožňuje vytvářet Java vyloučení v libovolném místě kódu.
  • Házení - klíč, který je uveden v podpisu metody. To znamená, že následující kód může uvést výjimku z určeného typu Java. Tato značka slouží jako signál pro vývojáře, což je třeba mít na paměti - metoda nemusí pracovat způsobem, jakým se očekává.
  • Rybářské pokusu za použití

    Uvolnění výjimkou Java, samozřejmě předpokládá, že budou speciálně upravené. Nejvýhodnější je to, pokud je bloková oblast bloku zablokována. Který může obsahovat výjimku. Při výkonu virtuálního strojového kódu zjistí neočekávanou situaci, pochopit, co je v kritickém bloku a předat řízení na oblast léčby.
    Kód Java je zabalen do speciálního bloku try, ve kterém lze generovat výjimku. Takto položil najednou několik nepředvídatelných situací, které budou chyceny na jednom místě, aniž by se prolomily kódem. Nejtypičtější zpracování jednotka kódu vypadá takto: try {//Tento kód bude zjištěno, že může generovat výjimku} catch (Typ_ysklyuchenyya_1 ydentyfykator_1) {//Tato výjimka je zpracován podle jeho typu a podmínek; } catch (Typ výjimky_2)identifikátor_2) {//Zde je zpracování výjimky provedeno podle jeho typu a podmínek; } Klíčové slovo chyby uvádí, že kód výjimky má být zpracován, jak je popsáno níže, za předpokladu, že odpovídá jeho typu. ID může být použito uvnitř bloku kódu zpracování jako argumenty.

    Konečně

    Jak bylo z předchozí kapitoly jasné, zablokujte výjimky lovu úlovků a zpracovávejte je. Velmi často nastává situace, kdy musí kód projít, bez ohledu na to, zda byly chyby chyceny. K tomu je klíčové slovo nakonec. Používá se ke zvýšení hodnot různých čítačů, uzavření souborů nebo síťových připojení.
    V této sekci existuje několik bloků úlovku s fiktivními výjimkami chyby. Například kód obsažený v pokusu generuje nepředvídatelné studené případ. Pak se výrazy "Uchlazené zima!" A "Je to něco, na co se rozveselí?" Bude zobrazen v konzole. To znamená, že blok je nakonec v každém případě proveden. Ve skutečnosti je způsob, jak se vyhnout spuštění. To je spojeno s dokončením virtuálního stroje. Návod, jak jej implementovat, naleznete na internetu.

    Keyword throw

    Throw generuje výjimku. Syntaxe vypadá takto: throw new NewException (); Tím vytvoříte novou výjimku s typem NewException (). Jako typ lze již použít ve standardních třídách knihoven Java a dříve definovaných vývojářem vlastní výroby. Taková konstrukce je obsažena v popisu jakékoliv metody, jejíž výzva by měla následovat v tryskovém bloku, aby mohla býtpříležitost zachytit ji.

    Klíčové slovo hodí

    Co dělat, když v procesu návrhu existuje situace, kdy metoda může vygenerovat výjimku, ale nemůže ji zvládnout správně. Za tímto účelem se při podpisu metody uvádí slovo házení a typ možného vyloučení. Tento štítek je zvláštním průvodcem pro vývojáře klientů, že metoda není schopna zpracovat vlastní výjimku. Kromě toho, pokud je typ chyby ověřen, kompilátor ji přiměje explicitně určit.

    Vyzkoušejte zdroje

    V Javě 7 vývojáři zahrnovali tak důležitou inovaci jako zpracování bloku try with resources. Mnoho vytvořených objektů v Javě by mělo být po jejich použití uzavřeno, aby se ušetřily prostředky. Dříve to muselo vzít v úvahu a zastavit takové případy ručně. Nyní mají rozhraní AutoClosable. Pomáhá automaticky zavírat dříve používané objekty umístěné v tryskovém bloku. Díky tomuto přístupu se kód psaní stal vhodnějším a jeho čitelnost se výrazně zvýšila.

    Třídy vlastní výjimky Java

    Tvůrci popsaného programovacího jazyka zohlednili mnoho aspektů při navrhování typů nepředvídaných událostí. Avšak všechny varianty výsledku událostí nebudou bránit, takže Java má možnost definovat své vlastní výjimky, které přesně odpovídají potřebám konkrétního kódu. Nejjednodušší způsob, jak vytvořit, je dědit z nejdůležitějšího kontextu objektu.
    Existovala řada výjimek, třída používaná k definování vlastních výjimek. MyException má dva konstruktory - jeden standardně,druhá s argumentem msg type String. Pak veřejná třída FullConstructors implementuje metodu f, jejíž podpis obsahuje hody MyException. Toto klíčové slovo znamená, že f může hodit výjimku do typu MyException typu Java. Potom v těle metody výstup textové informace do konzoly a velmi generace MyException, pomocí házet. Druhá metoda se mírně liší od první metody, že při vytváření výjimky projde parametrem řetězce, který bude zobrazen v konzole na píšťalce. V hlavním případě je zřejmé, že f () a g () jsou umístěny do zkušebního kontrolního bloku a klíčové slovo chyby je nakonfigurováno pro záchyt MyException. Výsledkem zpracování je výstup chybové zprávy v konzole:
    Takže bylo možné přidat vyloučení jazyka Java, které jste vytvořili sami.

    Architektura výjimek

    Stejně jako všechny objekty v jazyce Java jsou výjimky zděděny a mají hierarchickou strukturu. Kořenovým prvkem všech chyb, které jsou v tomto programovacím jazyce hodeny, je třída java.lang.Throwable. Z toho dědí dva typy - Chyba a Výjimka.
    Chyba - upozorňuje vás na kritické chyby a nezkontroluje vyloučení jazyka Java. Zachycení a zpracování těchto údajů se ve většině případů vyvíjí a nevyžaduje zavedení konečného programu do kódu. Nejčastěji používanou třídou pro vytváření a analýzu výjimek je výjimka. Které z nich je rozděleno do několika větví, včetně RuntimeException. RuntimeException zahrnuje výjimky pro běh, které se vyskytují při spuštění programu. Všechny třídy, které z něj pocházejí, nejsou vlastní.

    Často se setkávámevýjimka

    V výjimce Java, jejíž seznam je uveden níže, je nejčastěji používán, takže je vhodné podrobně popisovat jednotlivé z nich:
  • ArithmeticException. To zahrnuje chyby spojené s aritmetickými operacemi. Nejpozoruhodnějším příkladem je rozdělení na nulu.
  • ArrayIndexOutOfBoundsException - Odkaz na číslo prvku pole, které přesahuje jeho celkovou délku.
  • ArrayStoreException - pokus o přiřazení prvku pole nekompatibilního typu.
  • ClassCastException je pokus o nesprávné přivedení jednoho typu do druhého.
  • IllegalArgumentException - při volání metody použijte nesprávný argument.
  • NegativeArraySizeException je výjimka při vytváření pole negativních dimenzí.
  • NullPointerException - Použití odkazu na null je nesprávné.
  • NumberFormatException - nastane, když je řetězec nesprávně převeden na číslo.
  • ​​
  • NepodporovanýOperationException - operace není podporována.
  • Tyto příklady nejsou kontrolovány pro typy výjimek Java. Ale toto vypadá zkontrolováno:
  • ClassNotFoundException - třída nebyla nalezena.
  • IllegalAcccessException - Omezení přístupu do třídy.
  • Přerušená výjimka - přeruší tok závitu.
  • NoSuchFieldException - neexistuje povinné pole.
  • Výklad výjimek

    Pokud jde o časté výjimky, je třeba poznamenat, že jejich interpretace v průběhu vývoje může být špatně pochopena. Níže je uveden malý seznam, který vysvětluje podrobněji, kdy může dojít k neplánované situaci.
    NullPointerException. První výjimka, pokud existuje výjimka, je odkaz na odkaz na objekt, který se rovnánull To platí i pro metody nulové instance třídy. NullPointerException lze hodit a v případě získání délky pole je null. Zabránění takovým situacím pomůže pravidelně snímat objekty za hodnotu null. ArrayIndexOutOfBoundsException. Žádný program nemůže existovat bez použití polí. Časté zacházení s nimi může způsobit chyby. Existuje výjimka, když se vývojář pokusí přistupovat k prvku pole, který není v seznamu indexů. Například požadovaná hodnota je nad délkou nebo menší než nula. Velmi často to vyplývá ze skutečnosti, že faktura v poli začíná od začátku.

    Závěry

    manipulace Java Výjimka - výkonný prostředí, které výrazně usnadňuje práci programátora a umožňuje mu vytvořit čistý a zbavený chybový kód. Stav a pověst developerské společnosti závisí na tom, jak hladká a stabilní aplikace funguje.
    Samozřejmě, ve více či méně jednoduchých programech je mnohem snazší sledovat situace v outsourcingu. Ale ve velkých automatech pro několik set tisíc linek to je možné jen v důsledku dlouhého ladění a testování. Pro výjimky Java, chyby, které vznikají v některých aplikacích, jednotlivé společnosti nabízejí odměny, když je našli nadšenci. Zvláštní ocenění jsou ty, které způsobují narušení softwarového balíčku bezpečnostní politiky.

    Související publikace