Java

Spracovanie výnimiek Java

Spracovanie výnimiek Java
Keď sa normálny tok vykonávania programu preruší kvôli akejkoľvek chybe, nazýva sa to výnimkou. Tento typ udalosti je možné vyriešiť pomocou pokus-úlovok-konečne blokovať. Výnimkou je objekt, ktorý sa používa na zachytenie chyby a spustenie príkazu na základe chybového stavu, ktorý sa nazýva spracovanie výnimky. Spracovaním výnimiek sa riešia hlavne dva typy chýb. Toto sú zostavený čas chyby a beh programu chyby. The beh programu chyby sa vybavujú spracovaním výnimiek. V tomto výučbe je vysvetlené, ako zvládnuť výnimky v prostredí Java.

Syntax:

Syntax súboru try-catch-konečne blok je uvedený nižšie.

skúsiť
vyhlásenie 1… N

catch (ExceptiontType var)
vyhlásenie 1… N

konečne
vyhlásenie 1… N

Tu, ak dôjde k výnimke v rámci bloku try, bude výnimka hodená do bloku catch a blok final je tu voliteľný. Kód bloku konečne sa vykoná, či dôjde k výnimke alebo nie.

Príklad 1: Spracovanie výnimiek s jedným blokom zachytenia

Nasledujúci príklad ukazuje použitie spracovania výnimiek pomocou jedného bloku zachytenia. Ako vstup sa použije názov súboru a vytvorí sa objekt BufferedReader na otvorenie súboru na čítanie. Ak názov súboru existuje, bude sa obsah súboru čítať riadok po riadku a tlačiť. Ak súbor neexistuje, vygeneruje sa výnimka a vytlačí sa chybové hlásenie.

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.Skener;
verejná trieda okrem1
public static void main (String [] args)
// Vytvorenie objektu skenera
Vstup skenera = nový skener (systém.v);
Systém.von.print ("Zadajte názov súboru:");
// Vezmite údaje o reťazci od používateľa
Reťazec FileName = v.Ďalšie();
skúsiť
// Vytvorenie objektu čítačky
Čítačka BufferedReader = nový BufferedReader (nový FileReader (FileName));
// Prečítajte si prvý riadok, ak súbor existuje
Reťazec = čítačka.readLine ();
while (riadok != null)
// Vytlačí riadok
Systém.von.println (riadok);
// Prečítajte si nasledujúci riadok
riadok = čitateľ.readLine ();

// Zatvorte objekt čítačky
čitateľ.Zavrieť();
// Zatvorte objekt skenera
v.Zavrieť();
úlovok (IOException e)
// Vytlačte chybové hlásenie
Systém.von.println ("Súbor neexistuje");


Výkon:

V nasledujúcom výstupe,  'Ahoj.TXT' je uvedený ako názov súboru, ktorý neexistuje. Vytlačí sa teda nasledujúca správa.

Nabudúce, súbor1.TXT sa uvádza ako názov súboru, ktorý existuje, a výstup zobrazuje obsah súboru.

Príklad 2: Spracovanie výnimiek s blokom viacerých úlovkov

V nasledujúcom príklade je znázornené, ako môžete pomocou viacerých blokov zachytávania spracovať viaceré výnimky. Tu sú vyhlásené tri bloky úlovkov. Prvý blok zachytávania zachytí aritmetickú chybu, keď sa vykoná akákoľvek nelogická aritmetická operácia. Druhá záchytná bock zachytí chybu mimo rozsahu poľa, keď sa pokúsime načítať hodnotu indexu poľa, ktorá neexistuje. Tretí blok zachytenia zachytí chybu číselnej hodnoty, keď sa ako hodnota poľa uvedie akýkoľvek znak alebo hodnota reťazca. V kóde je deklarované pole so štyrmi indexmi a inicializované celočíselnými hodnotami, ktoré budú prevzaté od používateľa. Hodnoty poľa sa tlačia pomocou slučky. Operácia rozdelenia sa vykoná na konci bloku try.

import java.util.Skener;
verejná trieda okrem2
public static void main (reťazec [] args)

skús

// Deklaruje číselné pole
int num_arr [] = nový int [4];
// Vytvorenie objektu skenera
Vstup skenera = nový skener (systém.v);
Systém.von.println ("Zadajte štyri čísla:");
// Opakujte slučku štyrikrát
pre (int i = 0; i < 4; i++)
// Zadajte číslo
int n = v.nextInt ();
// Priradenie hodnoty k poľu
num_arr [i] = n;

Systém.von.println ("Hodnoty poľa sú:");
// Opakujte slučku päťkrát
pre (int i = 0; i < 4; i++)
// Vytlačte hodnoty poľa
Systém.von.println (num_arr [i]);

// Rozdelte a vytlačte hodnotu
int num = 50/0;
Systém.von.tlač (počet);
// Zatvorte objekt skenera
v.Zavrieť();

úlovok (ArithmeticException e)

Systém.von.println ("No cislo je delitelne 0");

catch (ArrayIndexOutOfBoundsException e)

Systém.von.println ("Vyskytla sa hodnota indexu mimo poľa");

úlovok (výnimka e)

Systém.von.println ("Hodnota čísla nie je uvedená");


Výkon:

Nasledujúci výstup ukazuje, že hodnoty poľa sú vložené a tlačené správne, ale tretí blok zachytenia je vykonaný, pretože 50 je vydelené 0, čo je chyba.

Program sa vykoná druhýkrát. Keď sa hodnota reťazca zadá ako hodnota poľa, vygeneruje sa druhá výnimka a vykoná sa príkaz druhého bloku zachytenia.

Príklad-3: Spracovanie výnimiek pomocou bloku try-catch-konečne

V nasledujúcom príklade je znázornené použitie bloku konečne s blokom try-catch. Kód konečne bloku sa vykoná, ak dôjde k výnimke alebo nie. V kóde bude od používateľa prevzatá celočíselná hodnota. Ak používateľ dá ľubovoľnú hodnotu reťazca, potom InputMismatchException

vygeneruje a vytlačí správu z bloku catch. Objekt skenera bude zatvorený v konečne blok, ak sa generuje výnimka alebo nie.

import java.util.Skener;
import java.util.InputMismatchException;
verejná trieda okrem3
public static void main (String [] args)
// Vytvorenie objektu skenera
Vstup skenera = nový skener (systém.v);
Systém.von.print ("Zadajte číslo:");
skúsiť
// Vezmite údaje o reťazci od používateľa
int číslo = v.nextInt ();
// Vytlačte číslo
Systém.von.println ("Hodnota cisla =" + cislo);
chytit (InputMismatchException e)
// Tlačiť chybové hlásenie
Systém.von.println ("Hodnota reťazca nie je akceptovaná.");

konečne
// Zatvorte objekt skenera
v.Zavrieť();
Systém.von.println ("Ukončené z programu");


Výkon:

78 je uvedená ako vstupná hodnota v nasledujúcom výstupe po vykonaní kódu. Tu sa teda negeneruje žiadna výnimka. Správa z bloku konečne sa vytlačí neskôr.

Ďalšie, Ahoj sa zadáva ako vstup po vykonaní kódu, ktorý je reťazcom. Takže sa vygeneruje výnimka a vytlačí sa chybové hlásenie z bloku catch. Správa z bloku konečne sa vytlačí neskôr.

Záver:

Spracovanie výnimiek je veľmi dôležitá a užitočná vlastnosť každého programovacieho jazyka, pomocou ktorého je možné skryť skutočnú chybovú správu pred používateľom a poskytnúť používateľovi čitateľnú chybovú správu, aby správne pochopil chybu. Tento tutoriál pomáha používateľovi naučiť sa rôzne spôsoby použitia spracovania výnimiek v Jave a dosiahnuť, aby bol jeho kód vhodnejší.

Hry Výukový program Shadow of the Tomb Raider pre Linux
Výukový program Shadow of the Tomb Raider pre Linux
Shadow of the Tomb Raider je dvanásty prírastok do série Tomb Raider - franšíza akčných adventúr vytvorená Eidosom Montrealom. Túto hru prijali kritic...
Hry Ako zvýšiť rýchlosť FPS v systéme Linux?
Ako zvýšiť rýchlosť FPS v systéme Linux?
FPS znamená Počet snímok za sekundu. Úlohou FPS je merať snímkovú frekvenciu pri prehrávaní videa alebo herných výkonoch. Jednoducho povedané, počet n...
Hry Najlepšie hry Oculus App Lab
Najlepšie hry Oculus App Lab
Ak ste vlastníkom náhlavnej súpravy Oculus, musíte byť informovaní o bočnom nakladaní. Sideloading je proces inštalácie neuloženého obsahu do náhlavne...