Võrdluskaart
Võrdluse alus | visata | viskab |
---|---|---|
Põhiline | Märksõna võtmesõna edastab meie loodud erandi objekti JVM-ile käsitsi. | Märksõna märksõna kasutatakse selleks, et delegeerida erandite käitlemise vastutus meetodi helistajale. |
Süntaksi | viska visatud eksemplar; | return_type method_name (parameetrite nimekiri) viskab ExceptionClass_list { // meetodi keha } |
Järgneb | Viska märksõna järgneb erandobjekt. | Märksõna märksõnale järgneb loetelu erandite klassidest, mis võivad meetodis esineda. |
Välja antud erandite arv | Märksõna märksõna võib visata ühe erandjuhtumi. | Märksõnad võivad deklareerida mitu erandiklassi, mis on eraldatud komaga. |
Viska mõiste
Märksõna „ visata ” kasutatakse meie loodud erandite näiteks JVM (Java Virtual Machine) käsitsi edastamiseks. Kui „visata” ei kasutata erandite eksemplari viskamiseks ja erand tekib, siis käivitab käitussüsteem sisemiselt erandjuhtumi JVM-ile ja programm lõpetab ebanormaalselt. Viska märksõna üldine vorm on:
viska Throwable_instance;
Throwable_instance'i kõrval peab olema klassi Throwable objekt. Primitiivseid tüüpe, nagu näiteks int, float või char ja mitte-visata klassi, ei saa visata märksõna abil.
Võtame näiteks, et mõistame märksõna viska.
Class Test {Public static void main (String [] args) {viska uus ArithmeticException ("/ nulliga"); }}
Ülaltoodud koodis viskab märksõna visand välja „Eraklass“ „ArithmeticException”. Kui visata märksõna ei oleks kasutatud, oleks peamine () meetod sisemiselt loonud JVM-ile üleantud erandobjekti.
Märksõnad:
- See edastab erandobjekti käsitsi JVM-ile.
- Seda kasutatakse kõige paremini kasutaja määratud erandite või kohandatud erandite jaoks.
- Kui mälu ei ole eraldatud visata märksõna poolt visatud erandobjektile, siis ilmneb käitusaja erand, NullPointerException.
- Viska märksõna peatab programmi täitmise kohe pärast selle esinemist. me ei saa kohe pärast viskamisavaldust kirjutada ühtegi avaldust. Kui me kirjutame mis tahes staatuse vahetult pärast viskamisavaldust, näitab kompilaator vea, kättesaamatut avaldust koostamise ajal.
- Ainult visata klassi objekte saab visata märksõna abil. Kui visatud objekt ei ole klassi Throwable objekt, siis saadakse kompileerimisaja viga “Leitud kokkusobimatu tüüp. . nõutav java.lang.Throwable ”
Märge:
Märksõna märksõna kasutatakse C ++, JAVA, C #, et erandit käsitsi visata.
Metsa määratlused
Märksõna „ viskamine ” kasutatakse selleks, et delegeerida meetodis esineva erandi käsitlemise vastutus oma helistaja meetodile. Helistaja meetod vastutab erandi käitlemise eest, mis võib olla mis tahes muu meetod või JVM. See deklareerib meetodi puhul esinevate erandiklasside nimekirja.
Viska võtmesõna kasutamine veenab kompilaatorit, et meetodis esinevat erandit tuleb käsitleda helistaja meetodiga, seega ei esine kompileerimisviga. Kuid helistaja meetod peab käsitlema erandit või delegeerima vastutuse selle hierarhia meetodi erandite käsitlemiseks. Kui käivitub käitusaegne erand, siis ei takista see isegi pärast viskamise märksõna kasutamist programmi ebanormaalset lõpetamist. Kui helistaja meetod on peamine (), tegeleb vaikimisi JVM erandiga.
Viska märksõna üldine vorm on:
return_type meetod_nimi (parameetrite nimekiri) viskab erandklass_list {// keha meetod}
Me näeme, et viskamise märksõna ilmub pärast meetodi allkirjastamist ja see võib sisaldada meetodi puhul esinevaid erandiklasside loendit. Pärast märksõnade viskamist kirjutatud erandite klassid eraldatakse komaga.
Võtame ühe näite viskamise märksõna mõistmiseks.
calss Test {public static void main (String [] args) viskab InterruptedException {thread sleep (10000); }}
Ülaltoodud koodis tehakse peavood magama () meetodi abil mõneks ajaks magama. Nüüd, kui põhimeetod on unerežiimis, on võimalik, et teised niidid võivad peakeermest katkestada. Kuid viskamise märksõna kasutatakse pärast peamise () meetodi allkirjastamist, nii et programm koostaks kergesti. Märksõna märksõna ütleb, et kontrollitud erandiklass on katkestatud. Nüüd, kui mõni muu lõime katkestab käitusaja jooksul peateema, siis viskab märksõna välja selle erandi peamise () meetodi helistajale, mis on JVM. JVM lõpetaks programmi ebanormaalselt.
Punktid, mida meelespea märksõna kohta meeles pidada:
- Viska märksõna kasutatakse ainult kontrollitud erandiklasside deklareerimiseks. Kontrollimatu erandi jaoks viskamise märksõna kasutamine ei mõjuta.
- Kui meetod ei soovi erandit eraldi käsitleda, delegeerib see erand selle klassi helistaja meetodile, kasutades viskamise märksõna.
- Selle kasutamine võimaldab ainult programmi sujuvat koostamist.
- Kui runtime ajal ilmneb erand, lõpeb programm ebanormaalselt isegi pärast viskamise märksõna kasutamist.
- Juhul, kui runtime ajal erandit, on soovitatav programmi tavaliseks lõpetamiseks kasutada katse- / püügiplokki.
Märge:
Märksõna viskab ainult Java. C ++ ja C # ei kasuta viskamise märksõna.
Peamised erinevused viskamise ja viskamise vahel
- Märksõna viskab, edastab erandite käsitlemise vastutuse JVM-ile käsitsi, samas kui märksõna viskab üleandmise vastutuse üleandmise koodi helistaja meetodile, kus erand on toimunud.
- Viska märksõna järgneb erandobjekt, mille see JVM-ile üle annab. Teisest küljest järgneb märksõnade viskamise järel erandite klassidele, mis võivad meetodis esineda.
- Märksõna võtmesõna võib korraga välja visata ühe erandobjekti, samal ajal kui viskamise märksõna võib deklareerida korraga mitu komaga eraldatud erandite klassi.
Järeldus:
Viska märksõna on kõige paremini kohandatud erandi jaoks. Proov / blokeerimisblokk on kõige parem erandite käsitlemiseks võrreldes viskamise märksõnaga.