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.

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'> );> > }> }>

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.