Różnica między rzutami i rzutami w Javie

Autor: Laura McKinney
Data Utworzenia: 1 Kwiecień 2021
Data Aktualizacji: 15 Móc 2024
Anonim
Różnica między rzutami i rzutami w Javie - Technologia
Różnica między rzutami i rzutami w Javie - Technologia

Zawartość


Rzuty i rzuty to słowa kluczowe używane w obsłudze wyjątków. The rzucać Słowo kluczowe służy do ręcznego przekazania instancji wyjątku utworzonego przez programistę do maszyny JVM. The rzuca Słowo kluczowe używane do przekazania odpowiedzialności za obsługę wyjątku wystąpiło w metodzie na metodę wywołującą. Podstawową różnicą między rzutem a rzutami jest to, że słowo kluczowe rzucanie używa obiektu wyjątku, podczas gdy słowo kluczowe rzuca używa nazw klas wyjątków.

  1. Wykres porównania
  2. Definicja
  3. Kluczowe różnice
  4. Wniosek

Wykres porównania

Podstawa porównaniarzucaćrzuca
PodstawowySłowo kluczowe „rzut” przekazuje ręcznie utworzony obiekt wyjątku do maszyny JVM.Słowo kluczowe throws służy do przekazania odpowiedzialności za obsługę wyjątków do obiektu wywołującego metodę.
Składniarzuć instancją Throwable;typ_powrotu nazwa_metody (lista parametrów) generuje listę wyjątków Klasy
{
// treść metody
}
Śledzony przezPo słowie kluczowym throw występuje obiekt wyjątku.Po słowie kluczowym throws znajduje się lista klas wyjątków, które mogą wystąpić w metodzie.
Liczba zgłoszonych wyjątkówSłowo kluczowe throw może wyrzucić pojedynczą instancję wyjątku.Słowo kluczowe throws może deklarować wiele klas wyjątków oddzielonych przecinkami.


Definicja rzutu

Słowo kluczowe „rzucać”Służy do ręcznego przekazania utworzonej instancji wyjątku do maszyny JVM (Java Virtual Machine). Jeśli „rzut” nie jest używany do zgłoszenia wystąpienia wyjątku, a wystąpi wyjątek, wówczas system wykonawczy wewnętrznie wyrzuca wystąpienie wyjątku do JVM, a program kończy się nieprawidłowo. Ogólna forma słowa kluczowego throw to:

rzuć Throwable_instance;

Nad Throwable_instance musi znajdować się obiekt klasy Throwable. Prymitywne typy, takie jak int, float lub char, oraz instancja klasy, której nie można wyrzucić, nie mogą zostać wyrzucone przy użyciu słowa kluczowego throw.

Weźmy przykład, aby zrozumieć rzut słowa kluczowego.

Test klasy {Public static void main (String args) {generuj nowy ArithmeticException („/ zero”); }}

W powyższym kodzie słowo kluczowe rzuca instancję klasy Exception „ArithmeticException”. Jeśli słowo kluczowe throw nie zostało użyte, metoda main () utworzyłaby wewnętrznie obiekt wyjątku przekazany do JVM.


Punkty do zapamiętania na temat słowa kluczowego:

  • Przekazuje obiekt wyjątku ręcznie do JVM.
  • Najlepiej nadaje się do wyjątków zdefiniowanych przez użytkownika lub niestandardowych.
  • Jeśli pamięć nie zostanie przydzielona do obiektu wyjątku zgłaszanego przez słowo kluczowe throw, wystąpi wyjątek czasu wykonywania, NullPointerException.
  • Słowo kluczowe throw zatrzymuje wykonywanie programu natychmiast po jego wystąpieniu. nie możemy bezpośrednio napisać żadnej instrukcji po instrukcji throw. Jeśli napiszemy jakieś stanowisko bezpośrednio po instrukcji throw, wówczas kompilator wyświetli błąd, nieosiągalną instrukcję podczas kompilacji.
  • Za pomocą słowa kluczowego throw można rzucać tylko obiekty klasy Throwable. Jeśli rzucany obiekt nie jest obiektem klasy Throwable, otrzymujemy błąd czasu kompilacji „Znaleziono niezgodny typ. . wymagany java.lang.Throwable ”

Uwaga:

Słowo kluczowe throw jest używane w C ++, JAVA, C # do ręcznego zgłaszania wyjątku.

Definicja rzutów

rzuca”Słowo kluczowe służy do przekazania odpowiedzialności za obsługę wyjątku występującego w metodzie na metodę wywołującą. Metoda wywołująca jest odpowiedzialna za obsługę wyjątku, którym może być dowolna inna metoda lub JVM. Deklaruje listę klas wyjątków, które mogą wystąpić w metodzie.

Użycie słowa kluczowego throws przekonuje kompilator, że wyjątek wystąpił w metodzie, która ma być obsłużona przez metodę wywołującą, dlatego nie występuje błąd kompilacji. Ale metoda wywołująca musi obsłużyć wyjątek lub przekazać odpowiedzialność za obsługę wyjątku do metody hierarchicznej. Kiedy wystąpi wyjątek czasu wykonywania, nawet po użyciu słowa kluczowego throws nie zapobiega to nienormalnemu zakończeniu programu. Jeśli metodą wywołującą jest main (), domyślnie JVM obsługuje wyjątek.

Ogólna forma słowa kluczowego rzuca to:

typ_powrotu nazwa_metody (lista parametrów) zgłasza wyjątek lista_klasy {// treść metody}

Widzimy, że słowo kluczowe rzuca pojawia się po podpisie metody i może zawierać listę klas wyjątków, które mogą wystąpić w metodzie. Lista klas wyjątków napisanych po zgłoszeniu słowa kluczowego jest oddzielona przecinkiem.

Weźmy jeden przykład, aby zrozumieć słowo kluczowe rzuca.

calss Test {public static void main (String args) zgłasza InterruptedException {uśpienie wątku (10000); }}

W powyższym kodzie główny wątek jest uśpiony przez pewien czas przy użyciu metody sleep (). Teraz, gdy główna metoda jest w trybie uśpienia, możliwe jest, że inne wątki mogą przerwać główny wątek. Ale słowo kluczowe throws jest używane po podpisie metody main (), więc program łatwo się skompiluje. Słowo kluczowe throws deklaruje sprawdzoną klasę wyjątków InterruptedException. Teraz, jeśli jakikolwiek inny wątek zakłóci główny wątek w czasie wykonywania, słowo kluczowe throws przekaże ten wyjątek wywołującemu metodę main (), którą jest JVM. JVM zakończyłby program nienormalnie.

Punkty do zapamiętania na temat słowa kluczowego rzuca:

  • Słowo kluczowe throws służy wyłącznie do deklarowania sprawdzonych klas wyjątków. Użycie słowa kluczowego throws dla niesprawdzonego wyjątku nie ma wpływu.
  • Jeśli metoda nie chce samodzielnie obsługiwać wyjątku, deleguje ten wyjątek do metody wywołującej tej klasy za pomocą słowa kluczowego throws.
  • Jego użycie pozwala jedynie na płynną kompilację programu.
  • Jeśli w czasie wykonywania wystąpi wyjątek, program kończy się nienormalnie, nawet po użyciu słowa kluczowego throws.
  • Zaleca się użycie bloku try / catch do normalnego zakończenia programu, jeśli wystąpi wyjątek w czasie wykonywania.

Uwaga:

Słowo kluczowe rzuca używane tylko w Javie. C ++ i C # nie używają słowa kluczowego throws.

  1. Wyrzucenie słowa kluczowego, ręczne przekazanie odpowiedzialności za obsługę wyjątków do maszyny JVM, natomiast słowo kluczowe wyrzuca, przekazanie odpowiedzialności za obsługę wyjątku do metody wywołującej kod, w którym wystąpił wyjątek.
  2. Po słowie kluczowym throw następuje obiekt wyjątku, który przekazuje on JVM. Z drugiej strony po słowach kluczowych rzuca następuje klasa wyjątków, która może wystąpić w metodzie.
  3. Słowo kluczowe throw może rzucać pojedynczy obiekt wyjątku jednocześnie, natomiast słowo kluczowe throws może deklarować wiele klas wyjątków oddzielonych przecinkiem na raz.

Wniosek:

Słowo kluczowe „rzut” najlepiej nadaje się do niestandardowego wyjątku. Blok try / catch jest najlepszy do obsługi wyjątków w porównaniu ze słowem kluczowym throws.