W Javie obsługa wyjątków jest jednym ze skutecznych sposobów radzenia sobie z błędami wykonania, pozwalającym zachować regularny przepływ aplikacji. Obsługa wyjątków Java to mechanizm obsługujący błędy czasu wykonywania, takie jak wyjątek ClassNotFoundException, IOException, SQLException, RemoteException itp.
W tym artykule dowiemy się o rzucać i rzuca w Javie, które mogą obsługiwać wyjątki w Javie.
Rzut Java
Słowo kluczowe rzut w Javie służy do jawnego zgłaszania wyjątku od metody lub dowolnego bloku kodu. Możemy rzucić albo zaznaczony lub niesprawdzony wyjątek . Słowo kluczowe Throw służy głównie do zgłaszania niestandardowych wyjątków.
Składnia w rzucie Java
throw Instance Example: throw new ArithmeticException('/ by zero');> Ale ten wyjątek, tj. Instancja musi być typu Możliwość rzucania lub podklasa Możliwość rzucania .
Na przykład , wyjątek jest podklasą wyjątków możliwych do zgłaszania, a wyjątki zdefiniowane przez użytkownika zazwyczaj stanowią rozszerzenie klasy wyjątków. W przeciwieństwie do C++, typy danych takie jak int, char, float lub klasy, których nie można zgłosić, nie mogą być używane jako wyjątki.
Wykonywanie programu zatrzymuje się natychmiast po wykonaniu instrukcji rzutu i najbliższym zamknięciu próbować blok jest sprawdzany, czy ma złapać instrukcja pasująca do typu wyjątku. Jeśli znajdzie dopasowanie, control jest przenoszony do tej instrukcji, w przeciwnym razie będzie następnym załączeniem próbować blok jest sprawdzany i tak dalej. Jeśli nie ma dopasowania złapać zostanie znaleziony, wówczas domyślna procedura obsługi wyjątków zatrzyma program.
Przykłady rzutów Java
Przykład 1:
Jawa
// Java program that demonstrates the use of throw> class> ThrowExcep {> >static> void> fun()> >{> >try> {> >throw> new> NullPointerException(>'demo'>);> >}> >catch> (NullPointerException e) {> >System.out.println(>'Caught inside fun().'>);> >throw> e;>// rethrowing the exception> >}> >}> >public> static> void> main(String args[])> >{> >try> {> >fun();> >}> >catch> (NullPointerException e) {> >System.out.println(>'Caught in main.'>);> >}> >}> }> |
>
>
Wyjście
Caught inside fun(). Caught in main.>
Przykład 2
Jawa
// Java program that demonstrates> // the use of throw> class> Test {> >public> static> void> main(String[] args)> >{> >System.out.println(>1> />0>);> >}> }> |
>
>
Wyjście
Exception in thread 'main' java.lang.ArithmeticException: / by zero>
Rzuca Java
rzuca to słowo kluczowe w języku Java używane w podpisie metody w celu wskazania, że metoda ta może zgłosić jeden z wyjątków typów wymienionych na liście. Osoba wywołująca te metody musi obsłużyć wyjątek za pomocą bloku try-catch.
Składnia rzutów w Javie
type method_name(parameters) throws exception_list exception_list is a comma separated list of all the exceptions which a method might throw.>
W programie, jeśli istnieje szansa na zgłoszenie wyjątku, kompilator zawsze nas o tym ostrzega i obowiązkowo powinniśmy obsłużyć ten sprawdzony wyjątek, w przeciwnym razie otrzymamy komunikat o błędzie kompilacji niezgłoszony wyjątek XXX musi zostać przechwycony lub zadeklarowany jako zgłoszony . Aby zapobiec temu błędowi czasu kompilacji, możemy obsłużyć wyjątek na dwa sposoby:
- Używając try catch
- Korzystając z rzuca słowo kluczowe
Możemy użyć słowa kluczowego rzuca, aby delegować odpowiedzialność za obsługę wyjątków na osobę wywołującą (może to być metoda lub maszyna JVM), a następnie metoda wywołująca jest odpowiedzialna za obsługę tego wyjątku.
jak sortować tablicę w Javie
Java rzuca przykłady
Przykład 1
Jawa
// Java program to illustrate error in case> // of unhandled exception> class> tst {> >public> static> void> main(String[] args)> >{> >Thread.sleep(>10000>);> >System.out.println(>'Hello Geeks'>);> >}> }> |
>
>
Wyjście
error: unreported exception InterruptedException; must be caught or declared to be thrown>
Wyjaśnienie
W powyższym programie pojawia się błąd czasu kompilacji, ponieważ istnieje ryzyko wyjątku, jeśli główny wątek przejdzie w stan uśpienia, inne wątki otrzymają szansę na wykonanie metody main(), co spowoduje wyjątek InterruptedException.
Przykład 2
Jawa
// Java program to illustrate throws> class> tst {> >public> static> void> main(String[] args)> >throws> InterruptedException> >{> >Thread.sleep(>10000>);> >System.out.println(>'Hello Geeks'>);> >}> }> |
>
Klawiatura w dół
>
Wyjście
Hello Geeks>
Wyjaśnienie
W powyższym programie, używając słowa kluczowego rzuca, obsłużyliśmy wyjątek InterruptedException i otrzymamy wynik jako Witam Geeków
Przykład 3
Jawa
// Java program to demonstrate working of throws> class> ThrowsExecp {> >static> void> fun()>throws> IllegalAccessException> >{> >System.out.println(>'Inside fun(). '>);> >throw> new> IllegalAccessException(>'demo'>);> >}> >public> static> void> main(String args[])> >{> >try> {> >fun();> >}> >catch> (IllegalAccessException e) {> >System.out.println(>'caught in main.'>);> >}> >}> }> |
>
>
Wyjście
Inside fun(). caught in main.>
Ważne uwagi dotyczące rzucania. Słowo kluczowe
- słowo kluczowe rzuca jest wymagane tylko w przypadku zaznaczonych wyjątków, a użycie słowa kluczowego rzuca w przypadku niesprawdzonych wyjątków jest bez znaczenia.
- słowo kluczowe rzuca jest wymagane jedynie w celu przekonania kompilatora, a użycie słowa kluczowego rzuca nie zapobiega nieprawidłowemu zakończeniu programu.
- Za pomocą słowa kluczowego rzuca możemy przekazać wywołującemu metodę informację o wyjątku.