The Java vrže ključno besedo se uporablja za razglasitev izjeme. Programerju daje informacijo, da lahko pride do izjeme. Zato je bolje, da programer zagotovi kodo za obravnavo izjem, da se lahko ohrani normalen tok programa.
Obravnavanje izjem se v glavnem uporablja za obravnavanje preverjenih izjem. Če pride do kakršne koli nepreverjene izjeme, kot je NullPointerException, je programer kriv, ker kode ne preveri, preden jo uporabi.
java char v celo število
Sintaksa metanja Java
return_type method_name() throws exception_class_name{ //method code }
Katero izjemo je treba razglasiti?
leta: Preverjena samo izjema, ker:
Prednost Java vrže ključno besedo
Zdaj je mogoče preverjeno izjemo razširiti (posredovati v skladu klicev).
Klicatelju metode zagotavlja informacije o izjemi.
Java vrže Primer
Oglejmo si primer Java throws klavzule, ki opisuje, da se preverjene izjeme lahko razširijo s ključno besedo throws.
Testthrows1.java
import java.io.IOException; class Testthrows1{ void m()throws IOException{ throw new IOException('device error');//checked exception } void n()throws IOException{ m(); } void p(){ try{ n(); }catch(Exception e){System.out.println('exception handled');} } public static void main(String args[]){ Testthrows1 obj=new Testthrows1(); obj.p(); System.out.println('normal flow...'); } }Preizkusite zdaj
Izhod:
java pretvori niz v int
exception handled normal flow...
Pravilo: Če kličemo metodo, ki razglasi izjemo, moramo izjemo bodisi ujeti bodisi razglasiti.
Obstajata dva primera:
Primer 1: Obravnava izjeme z uporabo bloka poskusi-ulovi
V primeru, da obravnavamo izjemo, se bo koda pravilno izvedla, ne glede na to, ali do izjeme pride med programom ali ne.
Testthrows2.java
import java.io.*; class M{ void method()throws IOException{ throw new IOException('device error'); } } public class Testthrows2{ public static void main(String args[]){ try{ M m=new M(); m.method(); }catch(Exception e){System.out.println('exception handled');} System.out.println('normal flow...'); } }Preizkusite zdaj
Izhod:
exception handled normal flow...
Primer 2: Razglasite izjemo
- Če razglasimo izjemo, se bo koda pravilno izvedla, če do izjeme ne pride.
- V primeru, da razglasimo izjemo in se izjema pojavi, bo vržena med izvajanjem, ker vrže ne obravnava izjeme.
Oglejmo si primere za oba scenarija.
kako razvrstiti matriko v Javi
A) Če do izjeme ne pride
Testthrows3.java
import java.io.*; class M{ void method()throws IOException{ System.out.println('device operation performed'); } } class Testthrows3{ public static void main(String args[])throws IOException{//declare exception M m=new M(); m.method(); System.out.println('normal flow...'); } }Preizkusite zdaj
Izhod:
device operation performed normal flow...
B) Če pride do izjeme
Testthrows4.java
import java.io.*; class M{ void method()throws IOException{ throw new IOException('device error'); } } class Testthrows4{ public static void main(String args[])throws IOException{//declare exception M m=new M(); m.method(); System.out.println('normal flow...'); } }Preizkusite zdaj
Izhod:
Razlika med metom in meti
Kliknite me za podrobnostiQue) Ali lahko ponovno vržemo izjemo?
Da, z vračanjem iste izjeme v blok catch.