Jaka jest różnica między rzutem vs. rzuca w Javie

Opublikowany: 2013-07-23

Jaka jest różnica między rzutem vs. rzuca w Javie

Jeden to deklaruje, a drugi to robi

Istnieje pięć słów kluczowych związanych z obsługą wyjątków w Javie, np . try, catch, w końcu, throw i throws . Oprócz różnicy między final, final i finalize , rzut vs rzuty to jedno z najczęściej zadawanych pytań podczas wywiadów w Javie.

  • Słowo kluczowe throw służy do zgłaszania wyjątku z dowolnej metody lub bloku statycznego w Javie, natomiast słowo kluczowe throws używane w deklaracji metody oznacza, który wyjątek może zostać zgłoszony przez tę metodę. Nie są wymienne.
  • Jeśli jakakolwiek metoda zgłasza zaznaczony wyjątek, jak pokazano w poniższym przykładzie, obiekt wywołujący może obsłużyć ten wyjątek, przechwytując go lub ponownie zgłaszając go, deklarując inną klauzulę throws w deklaracji metody.
  • Klauzula Throw może być używana w dowolnej części kodu, w której czujesz, że do metody wywołującej należy zgłosić określony wyjątek.

Omówienie wyjątków Java:

Jeśli metoda zgłasza wyjątek, powinna być otoczona blokiem try catch, aby go przechwycić, lub ta metoda powinna zawierać klauzulę throws w swoim podpisie. Bez klauzuli throws w sygnaturze kompilator Java JVM nie wie, co zrobić z wyjątkiem. Klauzula throws informuje kompilator, że ten konkretny wyjątek będzie obsługiwany przez metodę wywołującą.

Poniżej znajduje się bardzo prosty przykład, który wyjaśnia zachowanie bloku Throw, Throws, Try, Catch, Last w Javie.

Wynik:

Wyjątek zerowego wskaźnika — Crunchify

Teraz wystarczy zastąpić wiersz 45 i 46 wierszem poniżej, aby zobaczyć poniższy wynik:

Nowy wynik:

Lista wszystkich samouczków Java, które mogą Cię zainteresować.

Dodatkowe wskazówki dotyczące wyjątków:

  • Normalne wykonanie programu jest natychmiast rozgałęzione, gdy zostanie zgłoszony wyjątek.
  • Sprawdzone wyjątki muszą zostać przechwycone lub przekazane. Można to zrobić w instrukcji try… catch lub poprzez zdefiniowanie wyjątku w definicji metody.
  • Wyjątek jest przechwytywany przez pierwszy blok catch , którego skojarzona klasa wyjątku jest zgodna z klasą lub nadklasą zgłoszonego wyjątku.
  • Jeśli w łańcuchu wyjątków nie zostanie znaleziony pasujący blok catch , wątek zawierający zgłoszony wyjątek zostanie zakończony.
  • Blok last po instrukcji try … catch jest wykonywany niezależnie od tego, czy wyjątek został przechwycony, czy nie.
  • Zwrócenie w ramach bloku last przerywa łańcuch wyjątków do wywołującego, nawet w przypadku nieprzechwyconych wyjątków.