Erinevus viskamise ja viskamise vahel Java-s

Erandiks on javas oleva programmi täitmise ajal juhtunud sündmus, mis põhimõtteliselt takistab koodi üldist täitmist. Mõnikord käitleb süsteem erandit vaikimisi, kuid mõnel juhul peame erandiga hakkama saama vastavalt meie koodile või situatsioonidele. Erandiks on kohandatud viisil käitlemine, kasutades: proovida, püüda, visata, visata ja lõpuks märksõnu kasutada. Kui tahame määratleda erandi oma koodis, kasutame viskamist, samas kui tahame määratleda selgesõnaliselt mitu erandit, kasutame viskeid. Selles teemas käsitleme viske ja viske võrdlusi

Mis on viskamine?

Kui me tahame käsitleda kõiki koodis olevaid erandeid, mis on märkimata, kasutame viskamist. Viset saab meie koodis kasutada erandite selgesõnaliseks käsitlemiseks. Pidage meeles, et viskamise abil saame korraga hakkama ainult ühe tüüpi eranditega. Kui soovite kasutada mitmekordseks viskamiseks, peate seda kasutama mitu korda.

Süntaks:

throw

Näide:

throw new ArithmeticException();

Need erandjuhtumid peavad olema alamklassi nimega Throvable. Selle põhjuseks on asjaolu, et Throvableri alamklass on erand, ja erandiklassi all asuvad kõik kasutaja määratletud erandiklassid. Seetõttu veenduge, et kasutate erandjuhte, mis on alamklassid visatava joone all

Mõistagem nüüd programmi voogu, kui me seda viskame. Kood voolab läbi, kuni jõuab viskeni, pärast seda otsib ta proovipüügi plokki. Prooviblokki uuritakse, et kontrollida, kas püügiplokis pole ühtegi lauset, milles oleks mainitud erandiga sarnast erandit. Kui jah, siis viiakse kontroll selleni. Kui ei, otsib see järgmist proovipüügi plokki ja see jätkub. Oletame, et ta ei leia ühtegi sellist proovikogumisplokki erandi käsitlemiseks, siis süsteem haldab erandit, kasutades erandi vaikemääratlust, ja kood lõpetatakse.

Mis on visked?

Kui eeldame, et meetod võib kogemuste põhjal oma koodis näidata mõningaid erandeid, nimetame meetodi allkirjastamisel kõiki erandeid märksõna viskamise abil. Kõik erandid mainitakse komadega eraldatuna.

Süntaks:

() throws,

Näide:

void ExceptionExample() throws ArithmeticException, NullPointerException
(
//code
)

Kuna teil on idee, mida visked ja visked teevad, uurime viskamise ja viskamise erinevusi järgmiselt:

Pea ja pea võrdlus viskamise ja viskamise vahel (infograafika)

Allpool on toodud viis peamist erinevust Java viskamise ja viskamise vahel

Peamised erinevused viskamise ja viskamise vahel

Vaadakem järgmisi peamisi erinevusi javas viskamise ja viskamise vahel:

  • Kui tahame oma koodis määratleda erandi, kasutame viskamist. Kuid kui tahame erandeid selgesõnaliselt määratleda, kasutame viskeid.
  • Kui kasutame viska, ei saa kontrollitud erandite korral kood voolata. Kui erandid on kontrollitud, saab seda visata voogude abil
  • Süntaktiliselt kirjutame pärast viskamist astme muutuja. Arvestades, et kirjutame erandklassid komadega eraldatud pärast viset
  • Me kasutame meetodi määratluse all viska. Arvestades, et meetodi allkirjastamisel on tegemist erandiga.
  • Viskamine on piiratud ainsa erandi korraga käsitlemisega. Teisest küljest suudavad viskajad käsitleda mitut erandit.

Viska vs viskab võrdlustabel

Arutleme Java viskamise vs viskamise ülemise võrdluse üle

Viskamise ja viskamise võrdluse alus

Viska

Viskab

Kuidas või millal kasutadaNeil juhtudel, kui meil on vaja koodi sees loogiline erand teha, kasutame sellistel juhtudel tavaliselt funktsiooni all viskamise märksõna.

void ExceptionExample() throws ArithmeticException,
NullPointerException
(
throw

Neil juhtudel, kui funktsiooni avaldus võib põhjustada erandi, kasutame sellistel juhtudel nende erandite käsitlemiseks funktsiooni märksõnaga viset.

void ExceptionExample() throws ArithmeticException,
NullPointerException
(
throw new NullPointerException ();
)

Erandi alusel krahvÜhel ajahetkel saab viset kasutada ainult ühe erandi viskamiseks. Kui peame viskama konkreetse erandi, kasutame viskamist.

Näiteks:

// throw only a particular exception
throw new NullPointerException ();

Viskamisega saab hakkama mitme erandiga. Kui peame käsitlema mitut erandit, saame kasutada viskeid, kus erandite nimed mainitakse komaga eraldatuna. Kui mõni erand juhtub, võrdub see automaatselt väljakuulutatud eranditega visketega ja vastavalt sellele.

Näiteks:

void ExceptionExample() throws ArithmeticException,
NullPointerException
(
throw new NullPointerException ();
)

Süntaksi vaatenurgastMe kasutame viskamist funktsiooni sees ja ühe tüüpi erandi käsitlemiseks

Näiteks:

// throw only a particular exception
throw new NullPointerException ();

Kasutame funktsiooni viska, et käsitleda mitut erandit korraga, kasutades nende erandiklasside nime.

Näiteks:

void ExceptionExample() throws ArithmeticException,
NullPointerException
(
throw new NullPointerException ();
)

Kontrollitud / märkimata perspektiivKontrollitud erandeid ei saa visata. See saab hakkama ainult kontrollimata eranditega, mida ei saa visata ega kontrollitud eranditega hakkama saada.

Näiteks:

void ExceptionExample() throws ArithmeticException,
NullPointerException
(
throw new NullPointerException (); //null pointer was not checked
, hence we used in throw
)

Kui teame erandi apriori ja mainime viskajaid, muutuvad need kontrollitavaks erandiks.

Näiteks:

void ExceptionExample() throws ArithmeticException,
NullPointerException //explicit checked exceptions
(
//other code
)

KoodinäideViska:

public class ExceptionExample (
public static void main(String() args)
(
// Use of checked Exception by throw
try (
double num=1/0;
throw new ArithmeticException();
)
catch (ArithmeticException e)
(
e.printStackTrace();
)
)
)

Viskab:

import java.io.IOException;
public class ExceptionExample (
public static void main(String() args)
throws ArithmeticException //here we use unchecked
exception by throws
(
double num=1/0;
System.out.println (num);
)
)

Järeldus

Need on Java visked ja visked erinevused. Visked võivad teile anda vabaduse kasutada korraga mitu erandit, kuid visata ei saa. Põhinedes peamiselt sellel eristusel, peate kasutama viskeid, kui peate pakkuma korraga mitu erandit, kui te pole kindel, siis kasutage erandite ükshaaval lisamiseks lihtsalt viska.

Soovitatavad artiklid

See on Java visandamise vs viskamise juhend. Siin käsitleme java võtme erinevuste viskamist vs viskamist infograafika ja võrdlustabeliga. Lisateavet leiate ka meie muudest soovitatud artiklitest -

  1. Java loend vs massiivide loend
  2. JavaScript vs VBScript
  3. PHP vs JavaScript
  4. C vs Java

Kategooria: