Tablica usporedbe
Osnova usporedbe | bacanje | baca |
---|---|---|
Osnovni, temeljni | Ključna riječ throw predaje naš izrađen objekt iznimke JVM-u ručno. | Ključna riječ throws koristi se za delegiranje odgovornosti za rukovanje iznimkama pozivatelju metode. |
Sintaksa | baci Throwable-instancu; | return_type method_name (parameter-list) baca ExceptionClass_list { // tijelo metode } |
Slijedi | Ključna riječ throw slijedi objekt iznimke. | Ključna riječ throws popraćena je popisom klasa izuzetaka koje se mogu pojaviti u metodi. |
Broj izuzete iznimke | Ključna riječ throw može baciti jedan primjer iznimke. | Ključna riječ throws može deklarirati višestruke klase iznimaka odvojene zarezom. |
Definicija bacanja
Ključna riječ " bacanje " koristi se za ručno predavanje našeg stvorenog primjera iznimke JVM-u (Java Virtual Machine). Ako se “bacanje” ne koristi za bacanje instance iznimke i dolazi do iznimke, tada runtime sustav interno baca slučaj izuzimanja na JVM i program se nenormalno završava. Opći oblik ključne riječi throw je:
throw Throwable_instance;
Iznad Throwable_instance mora biti objekt klase Throwable. Primitivni tipovi kao što su int, float ili char i instanca klase koja se ne može baciti ne može se baciti pomoću ključne riječi throw.
Uzmimo primjer kako bismo razumjeli bacanje ključne riječi.
Test klase {Javni statički prazni glavni (String [] args) {bacanje novog ArithmeticException ("/ nula"); }}
U gornjem kodu, ključna riječ throw baca instancu klase Iznimka "ArithmeticException". Ako ključna riječ throw tada nije bila korištena, metoda main () bi interno stvorila objekt iznimke koji je predan JVM-u.
Točke za pamćenje o bacanju ključne riječi:
- On ručno prenosi objekt iznimke na JVM.
- Najbolje je koristiti za korisnički definirane iznimke ili prilagođene iznimke.
- Ako se memorija ne dodijeli objektu iznimke koje je bacila ključna riječ, tada se pojavljuje iznimka izvođenja, NullPointerException.
- Ključna riječ throw zaustavlja izvođenje programa odmah nakon njegova pojavljivanja. ne možemo izravno pisati bilo koju izjavu nakon izjave o bacanju. Ako napišemo bilo koji stagment odmah nakon bacanja, kompajler će prikazati pogrešku, nedostupan izraz tijekom kompilacije.
- Samo objekti klase Throwable mogu biti bačeni pomoću ključne riječi throw. Ako ubačeni objekt nije objekt klase Throwable tada dobivamo grešku vremena kompilacije “Pronađen je nekompatibilan tip., obavezna java.lang.Throwable "
Bilješka:
Ključna riječ throw se koristi u C ++, JAVA, C #, za ručno bacanje iznimke.
Definicija bacanja
Ključna riječ " throws " koristi se za delegiranje odgovornosti za rukovanje iznimkom koja se dogodila u metodi, na njegovu metodu pozivatelja. Metoda pozivatelja odgovorna je za rukovanje iznimkom koja može biti bilo koja druga metoda ili JVM. Ona objavljuje popis klasa izuzetaka koji se mogu pojaviti u metodi.
Korištenje ključne riječi throws uvjerava prevoditelja da je iznimka u metodi obrađena metodom pozivatelja pa se ne pojavljuje greška u kompilaciji. No, metoda pozivatelja mora obraditi iznimku ili delegirati odgovornost za rukovanje iznimkom u svojoj hijerarhijskoj metodi. Kada se pojavi iznimka izvođenja, čak i nakon korištenja ključne riječi throws, to ne sprječava abnormalni završetak programa. Ako je metoda pozivatelja glavna (), zadani JVM upravlja izuzetkom.
Opći oblik ključne riječi bacanja je:
return_type method_name (lista parametara) baca exceptionClass_list {// tijelo metode}
Možemo vidjeti da se ključna riječ bacanja pojavljuje nakon potpisivanja metode i može sadržavati popis klasa izuzetaka koje se mogu pojaviti u metodi. Popis klasa izuzetaka napisanih nakon što je ključna riječ bačena odvojena zarezom.
Uzmimo jedan primjer kako bismo razumjeli ključnu riječ bacanja.
calss Test {public static void main (String [] args) baca InterruptedException {thread sleep (10000); }}
U gornjem kodu, glavna nit se spušta neko vrijeme pomoću metode sleep (). Sada, kada je glavna metoda u stanju mirovanja, moguće je da druge niti mogu prekinuti glavnu nit. No, ključna riječ bacanja koristi se nakon potpisivanja metode main () tako da bi se program lako kompajlirao. Ključna riječ throws objavljuje klasu provjere izuzetaka InterruptedException. Sada, ako bilo koja druga nit prekine glavnu nit za vrijeme izvođenja, ključna riječ throws će izručiti tu iznimku pozivatelju metode main (), koja je JVM. JVM bi prekinuo program nenormalno.
Točke za pamćenje o ključnoj riječi bacanja:
- Ključna riječ throws koristi se samo za deklariranje označenih klasa izuzetaka. Korištenje ključne riječi throws za neoznačenu iznimku nema utjecaja.
- Ako metoda ne želi samostalno obraditi iznimku, taj izuzetak delegira metodi pozivatelja te klase pomoću ključne riječi throws.
- Njegova upotreba omogućuje samo glatko sastavljanje programa.
- Ako dođe do iznimke za vrijeme izvođenja, program se nenormalno prekida, čak i nakon korištenja ključne riječi throws.
- Preporuča se koristiti try / catch blok za normalni završetak programa ako dođe do iznimke tijekom izvođenja.
Bilješka:
Ključna riječ bacanja korištena je samo u Javi. C ++ i C # ne koriste ključnu riječ bacanja.
Ključne razlike između bacanja i bacanja
- Ključna riječ bacanje, primopredaja odgovornosti za rukovanje iznimkama na JVM ručno, dok, ključna riječ baca, predaju odgovornost za rukovanje iznimkama metodi pozivatelja koda gdje se dogodila iznimka.
- Ključna riječ throw slijedi objekt iznimke koji se predaje JVM-u. S druge strane, ključna riječ bacanja popraćena je klasama izuzetaka koje se mogu pojaviti u metodi.
- Ključna riječ throw može baciti jedan objekt iznimke, dok ključna riječ throws može deklarirati višestruke klase izuzetaka odvojene zarezom.
Zaključak:
Ključna riječ throw je najbolje koristiti za prilagođenu iznimku. Blok try / catch najbolji je za rukovanje iznimkama u odnosu na ključnu riječ baca.