logo

rzucaj i rzuca w Javie

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:

  1. Używając try catch
  2. 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.