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:
- 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.
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.