The Java rzuca słowo kluczowe służy do deklarowania wyjątku. Daje informację programiście, że może wystąpić wyjątek. Dlatego lepiej, aby programista dostarczył kod obsługi wyjątków, aby można było utrzymać normalny przebieg programu.
Obsługa wyjątków jest używana głównie do obsługi sprawdzonych wyjątków. Jeśli wystąpi jakiś niesprawdzony wyjątek, taki jak wyjątek NullPointerException, jest to wina programisty, że nie sprawdził on kodu przed jego użyciem.
mvc w wiosennym frameworku
Składnia rzutów w Javie
return_type method_name() throws exception_class_name{ //method code }
Który wyjątek należy zgłosić?
Lata: Sprawdzono tylko wyjątek, ponieważ:
Zaleta słowa kluczowego rzucającego w Javie
Teraz można propagować zaznaczony wyjątek (przekazywać dalej na stosie wywołań).
Dostarcza osobie wywołującej metodę informację o wyjątku.
Java rzuca przykład
Zobaczmy przykład klauzuli rzucania w Javie, która opisuje, że sprawdzane wyjątki mogą być propagowane za pomocą słowa kluczowego rzuca.
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...'); } }Przetestuj teraz
Wyjście:
jak przekonwertować ciąg na int
exception handled normal flow...
Reguła: Jeśli wywołujemy metodę deklarującą wyjątek, musimy albo przechwycić, albo zadeklarować wyjątek.
Istnieją dwa przypadki:
Przypadek 1: Obsługa wyjątku przy użyciu bloku try-catch
W przypadku, gdy obsłużymy wyjątek, kod zostanie wykonany poprawnie, niezależnie od tego, czy wyjątek wystąpi w programie, czy nie.
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...'); } }Przetestuj teraz
Wyjście:
exception handled normal flow...
Przypadek 2: Zgłoś wyjątek
- W przypadku, gdy zadeklarujemy wyjątek, jeśli wyjątek nie wystąpi, kod zostanie wykonany poprawnie.
- W przypadku, gdy zadeklarujemy wyjątek i wystąpi on, zostanie on zgłoszony w czasie wykonywania, ponieważ rzuca nie obsługuje wyjątku.
Zobaczmy przykłady obu scenariuszy.
rekha indyjski
A) Jeśli wyjątek nie wystąpi
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...'); } }Przetestuj teraz
Wyjście:
device operation performed normal flow...
B) Jeśli wystąpi wyjątek
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...'); } }Przetestuj teraz
Wyjście:
Różnica między rzutem a rzutem
Kliknij mnie po szczegółyQue) Czy możemy ponownie zgłosić wyjątek?
Tak, zgłaszając ten sam wyjątek w bloku catch.