Tři typy výjimek v Javě

Chyby jsou klamem uživatelů i programátorů. Vývojáři samozřejmě nechtějí, aby jejich programy padaly na každém kroku a uživatelé jsou nyní zvyklí na chyby programy, které neochotně akceptují, že zaplatí cenu za software, který bude mít téměř jistě alespoň jednu chybu to. Jáva je navržen tak, aby programátorovi poskytl sportovní šanci při navrhování bezchybné aplikace. Existují výjimky, které bude programátor vědět, existuje možnost, kdy aplikace interaguje se zdrojem nebo uživatelem a tyto výjimky lze zpracovat. Bohužel existují výjimky, které programátor nemůže ovládat, nebo jednoduše přehlédnout. Stručně řečeno, všechny výjimky nejsou vytvořeny rovnocenné, a proto existuje několik typů, na které by měl programátor uvažovat.

Výjimka je událost, která způsobí, že program nebude schopen proudit v zamýšleném spuštění. Existují tři typy výjimek - zaškrtnutá výjimka, chyba a výjimka za běhu.

Kontrolovaná výjimka

Kontrolované výjimky jsou výjimky, s nimiž by aplikace Java měla být schopna se vypořádat. Například, pokud aplikace čte data ze souboru, měla by být schopna zpracovat

instagram viewer
FileNotFoundException. Koneckonců neexistuje žádná záruka, že očekávaný soubor bude tam, kde má být. V systému souborů by se mohlo stát cokoli, o čem by aplikace neměla tušení.

Abychom učinili tento příklad o krok dále. Řekněme, že používáme FileReader třídy pro čtení znakového souboru. Pokud se podíváte na Definice konstruktoru FileReader v api Java uvidíte podpis metody:

public FileReader (String fileName) vyvolá FileNotFoundException.

Jak můžete vidět, konstruktor konkrétně uvádí, že FileReader konstruktor může hodit FileNotFoundException. To dává smysl, protože je vysoce pravděpodobné, že název souboru Řetězec bude čas od času špatný. Podívejte se na následující kód:

public static void main (String [] args) { FileReader fileInput = null; // Otevřete vstupní soubor. fileInput = new FileReader ("Untitled.txt"); }

Syntakticky jsou příkazy správné, ale tento kód se nikdy nezkompiluje. Kompilátor zná FileReader konstruktor může hodit FileNotFoundException a je na volajícím kódu, aby tuto výjimku zvládl. Existují dvě možnosti - nejprve můžeme předat výjimku z naší metody zadáním a hází klauzule také:

public static void main (String [] args) vyvolá FileNotFoundException { FileReader fileInput = null; // Otevřete vstupní soubor. fileInput = new FileReader ("Untitled.txt"); }

Nebo to zvládneme s výjimkou:

public static void main (String [] args) { FileReader fileInput = null; Snaž se. { // Otevřete vstupní soubor. fileInput = new FileReader ("Untitled.txt"); } catch (FileNotFoundException ex) { // řekněte uživateli, aby soubor vyhledal. } }

Dobře napsané Java aplikace by měly být schopny zvládnout kontrolované výjimky.

Chyby

Druhý druh výjimky je známý jako chyba. Pokud dojde k výjimce, JVM vytvoří objekt výjimky. Všechny tyto objekty pocházejí z Hodit třída. Hodit třída má dvě hlavní podtřídy— Chyba a Výjimka. Chyba třída označuje výjimku, kterou aplikace pravděpodobně nebude schopna řešit.

Tyto výjimky jsou považovány za vzácné. Například JVM může docházet zdroje, protože hardware není schopen zvládnout všechny procesy, se kterými se musí vypořádat. Je možné, že aplikace zachytí chybu a upozorní uživatele, ale obvykle se aplikace bude muset zavřít, dokud nebude vyřešen základní problém.

Výjimky za běhu

A runtime výjimka dochází jednoduše proto, že programátor udělal chybu. Napsali jste kód, všechno to vypadá dobře kompilátoru a když jdete ke spuštění kódu, převrhne se, protože to se pokusil o přístup k prvku pole, který neexistuje nebo logická chyba způsobila, že metoda byla volána s nulovou hodnotou hodnota. Nebo jakýkoli počet chyb, které může programátor udělat. Ale to je v pořádku, tyto výjimky zaznamenáváme vyčerpávajícím testováním, že?

Chyby a výjimky za běhu spadají do kategorie nekontrolovaných výjimek.

instagram story viewer