PočítačeProgramování

Java: výjimky a jejich zacházení

Každý program bude pracovat stabilně pouze v případě, že je jeho zdrojový kód laděn 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 tímto účelem vývojář bere v úvahu všechny očekávané výsledky a snaží se omezit účinek chyby tak, aby nedokázal porušit program nebo vést k jeho kolapsu.

Pokud budete muset zvládnout výjimky

V Javě mohou být výjimky způsobeny nesprávným vstupem uživatele, nedostatkem prostředků potřebných pro spuštění programu nebo náhlým odpojením sítě. Pro pohodlné používání aplikace vytvořené vývojářem je nutné kontrolovat výskyt mimořádných situací. Spotřebitel by neměl čekat na to, že zavěšený program dokončil svou práci, ztrácel data v důsledku neošetřených výjimek nebo prostě často se objevující zprávy, že se něco pokazilo.

Řešení výjimek Java

Co je třeba vzít v úvahu? Jazyk jazyka Java má zabudovanou funkci zpracování výjimek. Samozřejmě, velké procento chyb je zachyceno ve fázi kompilace, kdy systém automaticky oznámí, že ji nelze dále používat. Existují však i takové výjimky, které vznikají během operace programu. Vývojář musí být schopen to předvídat a navrhnout kód takovým způsobem, aby nezpůsoboval chyby, ale zachází s ním speciálně nebo předá kontrolu jiné pobočce.

V jazyce Java je taková chyba výjimek uložena překladačem, takže jsou známy typické problémy a mají vlastní standardní schéma provádění.

Typické výjimky

Nejjednodušší příklad, ve kterém můžete získat výjimku, je rozdělení. Navzdory všem jeho jednoduchosti, ve výrazu, jako dělitel, může být nula, což povede k chybě. No, pokud se jeho vzhled může předvídat dříve a zabránit. Tato možnost však není vždy k dispozici, takže je nutné okamžitě zorganizovat výjimku pro odchyt, pokud nastane "rozdělení na nulu".

V Javě vypadá mechanismus zpracování chyb:

  • V haldě je vytvořen objekt výjimky, stejně jako jakýkoli jiný;
  • Přirozený průběh programu je přerušován;
  • Mechanismus výjimek se pokusí najít alternativní způsob, jak pokračovat v kodexu;
  • Při hledání místa bezpečného provádění programu v psovodu bude práce buď obnovena, nebo bude výjimka implementována zvláštním způsobem.

Nejjednodušší příklad vytvoření chyby může vypadat takto:

Pokud (a == null)

Hodit nový NullPointerException ();

Zde je proměnná a kontrolována pro inicializaci, tj. Není rovno referenci null. V případě, že k této situaci dojde a je zapotřebí speciální zpracování, je vyloučena výjimka s hodením nového NullPointerException ().

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

Při práci s výjimkami často musíte používat klíčová slova Java k odkazu na akci. V tomto programovacím jazyce je pět z nich:

  • Zkuste. Toto klíčové slovo se již vyskytlo a znamená, že se jedná o část kódu, která může vyvolat výjimku. Blok je omezen na kudrnaté příchytky {}.
  • Chytit. Zavede příslušný typ výjimky a odpovídajícím způsobem zpracuje.
  • Nakonec. Toto klíčové slovo je volitelné a slouží k provedení kódu, který je nezbytný v každém případě, i když není zachycena žádná výjimka. Je přidán bezprostředně po bloku try.
  • Throw - umožňuje vytvářet výjimky Java kdekoli v kódu.
  • Throws je klíčové slovo, které je umístěno v metodě podpisu. To znamená, že následující kód může vyřadit Java výjimku zadaného typu. Tato značka slouží jako signál pro vývojáře, co musíte mít na paměti - metoda nemusí pracovat podle očekávání.

Chyť se zkusit

Vyloučení v Java výjimce samozřejmě předpokládá, že bude zacházeno zvláštním způsobem. Nejvhodnější způsob, jak to udělat, je, pokud je část kódu rozdělena do bloku. Která případně obsahuje výjimku. Při provádění takového kódu nalezne virtuální stroj neočekávanou situaci, chápe, že je v kritickém bloku a přenáší kontrolu do oblasti zpracování.

V Javě je kód zabalen do speciálního bloku try, uvnitř kterého může být vyhozena výjimka. Tím se v něm objeví několik nepředvídaných situací, které se chytají na jednom místě, aniž by se plazily podél kódu.

Typický kód s procesním blokem vypadá takto:

Vyzkoušejte {

// Tím bude určen kód, který může učinit výjimku

} Catch (identifikace extrakce_1_1_1) {

// Zde se zpracovává výjimka podle typu a podmínek;

} Chyba (identifikátor extrakce_type_2_2) {

// Zde se zpracovává výjimka podle typu a podmínek;

}}

Klíčové slovo chyby informuje o tom, že kód podléhající kontrole výjimky by měl být zpracován, jak je popsáno níže, za předpokladu, že odpovídá jeho typu. Identifikátor lze použít jako argumenty uvnitř bloku kódu zpracování.

Nakonec

Jak vyplývá z předchozí kapitoly, bloky úlovků zachytávají výjimky a zpracovávají je. Velmi často však existuje situace, kdy by měl nějaký kód spouštět, bez ohledu na to, zda byly chyby chyceny. K tomu konečné klíčové slovo existuje. Používá se ke zvýšení hodnot různých čítačů, uzavření souborů nebo připojení k síti.

V této sekci existuje několik bloků úlovek s vymyšlenými metodami zachytávání výjimek. Například kód obsažený v pokusu generuje neočekávanou situaci typu Cold. Pak se výrazy "Chycené za studena!" A "Je to něco, na co byste měli fandit?" Bude zobrazen v konzole. To znamená, že konečný blok je v každém případě proveden.

Ve skutečnosti existuje způsob, jak se konečně vyhnout. To souvisí s ukončením virtuálního stroje. Zjistěte, jak lze toto provést na internetu.

Klíčové slovo

Throw hodí výjimku. Jeho syntaxe vypadá takto:

Hodit nový NewException ();

Zde je vytvořena nová výjimka s typem NewException (). Jako typ můžete použít třídy již zahrnuté do standardních knihoven Java a dříve definované vývojářem vlastní produkce.

Taková konstrukce je obsažena v popisu jakékoliv metody, jejíž výzva musí následovat v tryskovém bloku, aby byla schopna jej zachytit.

Klíčové slovo hodí

Co dělat, pokud v procesu vývoje existuje situace, kdy metoda může hodit výjimku, ale nemůže ji zvládnout správně. Za tímto účelem určuje metoda podpis slovo throws a typ možných výjimek.

Tento štítek je pro vývojáře klientů určitým ukazatelem, že metoda není schopna zpracovat vlastní výjimku. Navíc, pokud je typ chyby ověřitelný, kompilátor ji výslovně určí.

Vyzkoušejte zdroje

V Javě verze 7 vývojáři zahrnovali tak důležitou inovaci jako zpracování bloku try with resources.

Mnoho objektů vytvořených v jazyce Java po jejich použití musí být uzavřeno, aby se ušetřily prostředky. Dříve jste museli tyto případy účtovat a zastavovat ručně. Nyní mají rozhraní AutoClosable. Pomáhá automaticky uzavírat již používané objekty umístěné v tryskovém bloku. Díky tomuto přístupu bylo mnohem pohodlnější psát kód, jeho čitelnost se výrazně zvýšila.

Vlastní třídy výjimek Java

Tvůrci popsaného programovacího jazyka zohlednili mnoho aspektů při navrhování typů nepředvídaných situací. Nicméně nelze vyloučit všechny varianty výsledku událostí, a proto v Javě lze určit jejich vlastní výjimky, které jsou vhodné pro potřeby konkrétního kódu.

Nejjednodušší způsob, jak vytvořit, je dědit z objektu nejvhodnějšího kontextu.

Zde jste zdědili z výjimky, třídu, která se používá k definování vlastních výjimek. V MyException existují dva konstruktory - jeden ve výchozím nastavení, druhý - s argumentem typu msg string.

Pak ve veřejné třídě FullConstructors je implementována metoda f, jejíž podpis obsahuje hodí MyException. Toto klíčové slovo znamená, že f může hodit výjimku jazyka Java typu MyException. Dále v textu této metody jsou textové informace vyvedeny do konzoly a skutečné generace MyException, hodením.

Druhá metoda se mírně liší od prvního způsobu, kdy je vyhozena výjimka, je předán parametr řetězec, který se odrazí v konzole, když je zachycen. V hlavním případě zjistíte, že f () a g () jsou umístěny v bloku try a klíčové slovo chytit je nastaveno na chybu MyException. Výsledkem zpracování je výstup chybové zprávy do konzoly:

Bylo tedy možné přidat výjimky Java vytvořené vlastní rukou.

Architektura výjimek

Stejně jako všechny objekty v Javě jsou výjimky také zděděny a mají hierarchickou strukturu. Kořenovým prvkem všech chyb v tomto programovacím jazyce je třída java.lang.Throwable. Zdědí dva typy - Chyba a výjimka.

Chyba - upozorňuje na kritické chyby a představuje nevybrané výjimky Java. Zachycení a zpracování těchto údajů se ve většině případů vyskytuje ve fázi vývoje a nemusí být provedeno v kódu konečné žádosti.

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 se vztahuje k výjimkám běhu, tedy k výjimkám, které se vyskytují při spuštění programu. Všechny třídy, které z něj byly zděděny, jsou neověřitelné.

Běžné výjimky

Výjimky Java, jejichž seznam je uveden níže, jsou nejčastěji používány, takže je vhodné podrobněji popisovat jednotlivé z nich:

  • AritmeticException. To zahrnuje chyby související s aritmetickými operacemi. Nejpozoruhodnějším příkladem je dělení nulou.
  • ArrayIndexOutOfBoundsException - přístup k číslu prvku pole, který přesahuje jeho celkovou délku.
  • ArrayStoreException - pokus o přiřazení prvek pole nekompatibilního typu.
  • ClassCastException je pokus zneužít jednoho typu k druhému.
  • IllegalArgumentException - použití neplatného argumentu ve volání metody.
  • NegativeArraySizeException je výjimka při vytváření pole negativní velikosti.
  • NullPointerException - nesprávné použití nulové reference.
  • NumberFormatException - nastane, když řetězec není převeden na číslo.
  • UnsupportedOperationException - operace není podporována.

Tyto příklady jsou nekontrolované typy výjimek Java. A tak se podívejte:

  • ClassNotFoundException - třída nebyla nalezena.
  • IllegalAcccessException - omezení přístupu do třídy.
  • Přerušený výpadek - přerušení toku.
  • NoSuchFieldException - požadované pole neexistuje.

Interpretace výjimek

Když mluvíme o společných výjimkách, je třeba poznamenat, že jejich výklad během vývoje může být mylný. Dále je zde malý seznam, který vysvětluje podrobněji, kdy může dojít k nepředvídané situaci.

NullPointerException. V prvním okamžiku, kdy dojde k výjimce, se odkazuje na odkaz na objekt, který je nulový. To platí i pro metody nulové instance třídy. NullPointerException může být hoden a pokud délka pole se rovná null. Vyvarujte se takových situací tím, že pravidelně kontrolujete objekty na nulu.

ArrayIndexOutOfBoundsException. Žádný program nemůže existovat bez použití polí. Častá zmínka o nich může způsobit chyby. Výjimka nastane, když se vývojář pokusí o přístup k prvku pole, který není v seznamu indexů. Například požadovaná hodnota je nad délkou nebo menší než nula. Často se objevuje v důsledku skutečnosti, že počet v poli začíná od nuly.

Závěry

Manipulace s výjimkami Java je výkonný nástroj pro prostředí, který velmi usnadňuje práci programátora a umožňuje mu vytvořit čistý a bezchybný kód. Stav a pověst developerské společnosti závisí na tom, jak hladce a stabilně funguje aplikace.

Samozřejmě, ve více či méně jednoduchých programech je mnohem snazší sledovat situace na volné noze. Ale ve velkých automatech pro několik stovek tisíc řádků je to možné pouze v důsledku dlouhodobé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ž jsou nadšené. Zvláště jsou oceněny ty, které způsobují narušení bezpečnostní politiky softwarového komplexu.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 cs.delachieve.com. Theme powered by WordPress.