„Java“

„Java“ išimčių tvarkymas

„Java“ išimčių tvarkymas
Kai įprastas programos vykdymo srautas nutrūksta dėl bet kokios klaidos, tada jis vadinamas išimtimi. Šio tipo įvykius galima tvarkyti naudojant pabandyk sugauti pagaliau blokuoti. Išimtis yra objektas, naudojamas klaidai sugauti ir sakiniui vykdyti pagal klaidos sąlygą, vadinamą išimčių tvarkymu. Išimčių tvarkymas iš esmės valdo dviejų tipų klaidas. Šitie yra sudarytas laikas klaidos ir vykdymo laikas klaidos. The vykdymo laikas klaidas tvarko išimčių tvarkymas. Kaip galite tvarkyti išimtis „Java“, paaiškinta šioje pamokoje.

Sintaksė:

Sintaksė pabandyk sugauti pagaliau blokas pateiktas žemiau.

bandyti
1 teiginys ... N

pagauti (ExceptiontType var)
1 teiginys ... N

pagaliau
1 teiginys ... N

Jei išimtis įvyksta bandymo bloke, išimtis bus perkelta į sugavimo bloką, o galutinis blokas čia yra neprivalomas. Galutinio bloko kodas vykdo, ar yra išimtis, ar ne.

1 pavyzdys: Išimčių tvarkymas su vienu sugavimo bloku

Šiame pavyzdyje parodyta, kaip išimtys tvarkomos naudojant vieną sugavimo bloką. Failo vardas bus laikomas įvestimi ir sukurs „BufferedReader“ objektą, kad atidarytų failą skaitymui. Jei failo pavadinimas egzistuoja, failo turinys bus skaitomas eilutėmis ir atspausdintas. Jei failo nėra, bus sukurta išimtis ir išspausdintas klaidos pranešimas.

importuoti java.t.BufferedReader;
importuoti java.t.FileReader;
importuoti java.t.IOException;
importuoti java.util.Skaitytuvas;
viešoji klasė, išskyrus1
public static void main (String [] argumentuoja)
// Sukurkite skaitytuvo objektą
Skaitytuvas = naujas skaitytuvas (sistema.in);
Sistema.išėjo.print ("Įveskite failo pavadinimą:");
// Paimkite eilutės duomenis iš vartotojo
Eilutė FileName = į.Kitas();
bandyti
// Sukurkite skaitytojo objektą
BufferedReader reader = new BufferedReader (naujas FileReader (FileName));
// Perskaitykite pirmąją eilutę, jei failas yra
Styginių eilutė = skaitytuvas.readLine ();
o (eilutė != nulis)
// Atspausdinkite liniją
Sistema.išėjo.println (linija);
// Perskaitykite kitą eilutę
eilutė = skaitytojas.readLine ();

// Uždarykite skaitytojo objektą
skaitytojas.Uždaryti();
// Uždarykite skaitytuvo objektą
į.Uždaryti();
sugavimas (IOException e)
// Spausdinkite klaidos pranešimą
Sistema.išėjo.println ("Failo nėra");


Išvestis:

Šiame išvestyje,  'Sveiki.txt ' nurodomas kaip neegzistuojantis failo vardas. Taigi atspausdintas šis pranešimas.

Kitą kartą, failas1.txt pateikiamas kaip egzistuojantis failo pavadinimas, o išvestis rodo failo turinį.

2 pavyzdys: Išimčių tvarkymas naudojant kelis sugavimo blokus

Kaip galite naudoti kelis sugavimo blokus, kad galėtumėte tvarkyti kelias išimtis, parodyta kitame pavyzdyje. Čia deklaruojami trys gaudymo blokai. Pirmasis fiksavimo blokas užfiksuos aritmetinę klaidą, kai bus atlikta bet kokia nelogiška aritmetinė operacija. Antroji gaudyklė užfiksuos masyvo ribų ribas, kai bus bandoma nuskaityti masyvo indekso vertę, kurios nėra. Trečiasis sugavimo blokas užfiksuos skaitinės vertės klaidą, kai bet kurio simbolio ar eilutės reikšmė pateikiama kaip masyvo reikšmė. Kode deklaruojamas masyvas su keturiais indeksais ir inicijuojamas su sveikojo skaičiaus reikšmėmis, kurios bus paimtos iš vartotojo. Masyvo vertės spausdinamos naudojant kilpą. Padalinimo operacija atliekama bandymo bloko pabaigoje.

importuoti java.util.Skaitytuvas;
viešoji klasė, išskyrus2
public static void main (String [] argumentai)

bandyti

// Paskelbkite skaitinį masyvą
int num_arr [] = naujas int [4];
// Sukurkite skaitytuvo objektą
Skaitytuvas = naujas skaitytuvas (sistema.in);
Sistema.išėjo.println ("Įveskite keturis skaičius:");
// Keturis kartus kartokite kilpą
už (int i = 0; i < 4; i++)
// Įvesties numeris
int n = in.kitasInt ();
// Priskirkite masyvo vertę
num_arr [i] = n;

Sistema.išėjo.println ("Masyvo reikšmės yra:");
// Kartokite kilpą penkis kartus
už (int i = 0; i < 4; i++)
// Spausdinti masyvo reikšmes
Sistema.išėjo.println (num_arr [i]);

// Padalinkite ir atspausdinkite vertę
int skaičius = 50/0;
Sistema.išėjo.spausdinti (skaičius);
// Uždarykite skaitytuvo objektą
į.Uždaryti();

sugavimas (aritmetinė išimtis e)

Sistema.išėjo.println ("Nr. skaičius dalijasi iš 0");

sugavimas (ArrayIndexOutOfBoundsException e)

Sistema.išėjo.println ("Įvyko masyvo indekso reikšmė");

sugavimas (e išimtis)

Sistema.išėjo.println ("Skaičiaus reikšmė nepateikiama");


Išvestis:

Ši išvestis rodo, kad masyvo reikšmės įterptos ir tinkamai atspausdintos, tačiau trečiasis sugavimo blokas vykdomas, nes 50 padalijama iš 0, o tai yra klaida.

Programa vykdoma antrą kartą. Kai eilutės vertė pateikiama kaip masyvo reikšmė, tada sukuriama antroji išimtis ir vykdomas antrojo sugavimo bloko sakinys.

3 pavyzdys: Išimčių tvarkymas su blokavimo bandymu

Galutinio bloko naudojimas su bandymo sugauti bloku parodytas kitame pavyzdyje. Galutinio bloko kodas vykdomas, jei įvyksta išimtis. Kode sveiko skaičiaus reikšmė bus paimta iš vartotojo. Jei vartotojas pateikia kokią nors eilutės reikšmę, tada „InputMismatchException“

sugeneruos ir atspausdins pranešimą iš sugavimo bloko. Skaitytuvo objektas bus uždarytas pagaliau blokuoti, jei išimtis sukuria ar ne.

importuoti java.util.Skaitytuvas;
importuoti java.util.„InputMismatchException“;
viešoji klasė, išskyrus 3
public static void main (String [] argumentuoja)
// Sukurkite skaitytuvo objektą
Skaitytuvas = naujas skaitytuvas (sistema.in);
Sistema.išėjo.spausdinti ("Įveskite numerį:");
bandyti
// Paimkite eilutės duomenis iš vartotojo
int skaičius = į.kitasInt ();
// Atspausdinkite numerį
Sistema.išėjo.println ("Skaičiaus reikšmė =" + skaičius);
pagauti („InputMismatchException e“)
// Spausdinimo klaidos pranešimas
Sistema.išėjo.println ("Stygos reikšmė nepriimama.");

pagaliau
// Uždarykite skaitytuvo objektą
į.Uždaryti();
Sistema.išėjo.println ("Nutrauktas iš programos");


Išvestis:

Atlikus kodą, 78 pateikiama kaip įvesties vertė kitame išvestyje. Taigi, čia nėra jokių išimčių. Pranešimas iš paskutinio bloko atspausdinamas vėliau.

Kitas, Sveiki pateikiamas kaip įvestis įvykdžius kodą, kuris yra eilutė. Taigi, sukuriama išimtis ir atspausdinamas klaidos pranešimas iš sugavimo bloko. Pranešimas iš paskutinio bloko atspausdinamas vėliau.

Išvada:

Išimčių tvarkymas yra labai svarbi ir naudinga bet kurios programavimo kalbos funkcija, kuri gali būti naudojama paslėpti tikrąjį klaidos pranešimą nuo vartotojo ir pateikti žmonėms suprantamą klaidos pranešimą, kad vartotojas tinkamai suprastų klaidą. Ši pamoka padeda vartotojui sužinoti įvairius išimčių tvarkymo „Java“ būdus ir padaryti jų kodą tinkamesnį.

Naudingi įrankiai „Linux“ žaidėjams
Jei jums patinka žaisti žaidimus „Linux“ sistemoje, yra tikimybė, kad galbūt naudojote tokias programas ir įrankius kaip „Wine“, „Lutris“ ir „OBS Stud...
„HD Remastered“ žaidimai, skirti „Linux“, kurie niekada anksčiau nebuvo išleisti „Linux“
Daugelis žaidimų kūrėjų ir leidėjų siūlo senų žaidimų HD remasterį, kad prailgintų franšizės laiką. Prašome gerbėjų, prašančių suderinamumo su šiuolai...
Kaip naudoti „AutoKey“, norint automatizuoti „Linux“ žaidimus
„AutoKey“ yra darbalaukio automatizavimo įrankis, skirtas „Linux“ ir „X11“, užprogramuotas „Python 3“, „GTK“ ir „Qt“. Naudodami scenarijų ir „MACRO“ f...