Jáva

Zpracování výjimek Java

Zpracování výjimek Java
Když se normální tok provádění programu přeruší kvůli jakékoli chybě, nazývá se to výjimkou. Tento typ události lze zpracovat pomocí pokus-chytit-konečně blok. Výjimkou je objekt, který se používá k zachycení chyby a spuštění příkazu na základě chybového stavu, který se nazývá zpracování výjimek. Zpracováním výjimek se zpracovávají hlavně dva typy chyb. Tyto jsou kompilovaný čas chyby a run-time chyby. The run-time chyby jsou zpracovány zpracováním výjimek. Jak můžete zpracovat výjimky v Javě je vysvětleno v tomto kurzu.

Syntax:

Syntaxe try-catch-konečne blok je uveden níže.

Snaž se
prohlášení 1… N

catch (ExceptiontType var)
prohlášení 1… N

Konečně
prohlášení 1… N

Zde, pokud dojde k výjimce v rámci bloku try, bude výjimka vyvolána do bloku catch a konečný blok je zde volitelný. Kód bloku nakonec provede, zda dojde k výjimce nebo ne.

Příklad 1: Zpracování výjimek s jedním blokem zachycení

Následující příklad ukazuje použití zpracování výjimek pomocí jednoho bloku zachycení. Název souboru bude považován za vstup a vytvoří objekt BufferedReader k otevření souboru pro čtení. Pokud název souboru existuje, bude obsah souboru čten řádek po řádku a vytištěn. Pokud soubor neexistuje, vygeneruje se výjimka a vytiskne se chybová zpráva.

importovat java.io.BufferedReader;
importovat java.io.FileReader;
importovat java.io.IOException;
importovat java.util.Skener;
veřejná třída kromě1
public static void main (String [] args)
// Vytvořte objekt skeneru
Vstup skeneru = nový skener (systém.v);
Systém.ven.print ("Zadejte název souboru:");
// Převzetí dat řetězce od uživatele
Řetězec Název souboru = v.další();
Snaž se
// Vytvoří objekt čtečky
Čtečka BufferedReader = nový BufferedReader (nový FileReader (FileName));
// Přečíst první řádek, pokud soubor existuje
Řetězec = čtečka.readLine ();
while (řádek != null)
// Vytiskne řádek
Systém.ven.println (řádek);
// Přečtěte si další řádek
linka = čtenář.readLine ();

// Zavřete objekt čtečky
čtenář.zavřít();
// Zavřete objekt skeneru
v.zavřít();
chytit (IOException e)
// Vytiskněte chybovou zprávu
Systém.ven.println ("Soubor neexistuje");


Výstup:

V následujícím výstupu,  'Ahoj.txt ' je uveden jako název souboru, který neexistuje. Vytiskne se tedy následující zpráva.

Příště, soubor1.txt je uveden jako název souboru, který existuje, a výstup ukazuje obsah souboru.

Příklad 2: Zpracování výjimek s blokem více úlovků

Jak můžete použít více bloků úlovku ke zpracování více výjimek, je uveden v následujícím příkladu. Zde jsou deklarovány tři bloky úlovků. První blok zachycení zachytí aritmetickou chybu, když je provedena jakákoli nelogická aritmetická operace. Druhý záchytný bod zachytí chybu mimo rozsah pole, když se pokusí číst hodnotu indexu pole, která neexistuje. Třetí blok zachycení zachytí chybu číselné hodnoty, když je jako hodnota pole zadán jakýkoli znak nebo hodnota řetězce. V kódu je deklarováno pole se čtyřmi indexy a inicializováno celočíselnými hodnotami, které budou převzaty od uživatele. Hodnoty pole se tisknou pomocí smyčky. Operace dělení se provádí na konci bloku try.

importovat java.util.Skener;
veřejná třída kromě2
public static void main (String [] args)

Snaž se

// Deklaruje číselné pole
int num_arr [] = nový int [4];
// Vytvořte objekt skeneru
Vstup skeneru = nový skener (systém.v);
Systém.ven.println ("Zadejte čtyři čísla:");
// Opakujte smyčku čtyřikrát
pro (int i = 0; i < 4; i++)
// Zadejte číslo
int n = v.nextInt ();
// Přiřadí hodnotu poli
num_arr [i] = n;

Systém.ven.println ("Hodnoty pole jsou:");
// Opakujte smyčku pětkrát
pro (int i = 0; i < 4; i++)
// Vytiskne hodnoty pole
Systém.ven.println (num_arr [i]);

// Rozdělte a vytiskněte hodnotu
int num = 50/0;
Systém.ven.tisk (počet);
// Zavřete objekt skeneru
v.zavřít();

catch (ArithmeticException e)

Systém.ven.println ("Žádné číslo není dělitelné 0");

catch (ArrayIndexOutOfBoundsException e)

Systém.ven.println ("Došlo k hodnotě indexu mimo pole");

úlovek (výjimka e)

Systém.ven.println ("Hodnota čísla není uvedena");


Výstup:

Následující výstup ukazuje, že hodnoty pole jsou vloženy a vytištěny správně, ale třetí blok zachycení je proveden, protože 50 je vyděleno 0, což je chyba.

Program se provede podruhé. Když je hodnota řetězce zadána jako hodnota pole, je vygenerována druhá výjimka a je proveden příkaz druhého bloku catch.

Příklad 3: Zpracování výjimek pomocí bloku try-catch-konečne

V následujícím příkladu je ukázáno použití konečně bloku s blokem try-catch. Kód nakonec bloku se spustí, pokud dojde k výjimce nebo ne. V kódu bude celočíselná hodnota převzata od uživatele. Pokud uživatel zadá libovolnou hodnotu řetězce, pak InputMismatchException

vygeneruje a vytiskne zprávu z bloku catch. Objekt skeneru bude uzavřen v Konečně blok, pokud se výjimka generuje nebo ne.

importovat java.util.Skener;
importovat java.util.InputMismatchException;
veřejná třída kromě3
public static void main (String [] args)
// Vytvořte objekt skeneru
Vstup skeneru = nový skener (systém.v);
Systém.ven.tisk ("Zadejte číslo:");
Snaž se
// Převzetí dat řetězce od uživatele
int číslo = v.nextInt ();
// Vytiskněte číslo
Systém.ven.println ("Hodnota čísla =" + číslo);
catch (InputMismatchException e)
// Chybová zpráva tisku
Systém.ven.println ("Hodnota řetězce není akceptována.");

Konečně
// Zavřete objekt skeneru
v.zavřít();
Systém.ven.println ("Ukončeno z programu");


Výstup:

78 je uveden jako vstupní hodnota v následujícím výstupu po provedení kódu. Zde tedy není generována žádná výjimka. Zpráva z bloku finally se vytiskne později.

další, Ahoj je zadán jako vstup po provedení kódu, který je řetězcem. Generuje se tedy výjimka a vytiskne se chybová zpráva z bloku catch. Zpráva z bloku finally se vytiskne později.

Závěr:

Zpracování výjimek je velmi důležitá a užitečná vlastnost jakéhokoli programovacího jazyka, kterou lze použít ke skrytí skutečné chybové zprávy před uživatelem a poskytnutí chybové zprávy čitelné pro člověka, aby uživateli správně porozuměl. Tento kurz pomáhá uživateli naučit se různé způsoby použití zpracování výjimek v Javě a přizpůsobit jejich kód vhodnějším způsobem.

Hry Top 10 her k hraní na Ubuntu
Top 10 her k hraní na Ubuntu
Platforma Windows byla jednou z dominujících platforem pro hraní her kvůli velkému procentu her, které se dnes vyvíjejí, aby nativně podporovaly Windo...
Hry 5 nejlepších arkádových her pro Linux
5 nejlepších arkádových her pro Linux
V dnešní době jsou počítače vážné stroje používané k hraní her. Pokud nemůžete získat nové vysoké skóre, budete vědět, co tím myslím. V tomto příspěvk...
Hry Battle For Wesnoth 1.13.6 Vývoj uvolněn
Battle For Wesnoth 1.13.6 Vývoj uvolněn
Battle For Wesnoth 1.13.6 vydané minulý měsíc, je šestým vývojovým vydáním v 1.13.série x a přináší řadu vylepšení, zejména do uživatelského rozhraní,...