Differenza tra tiro contro tiro in Java

Un'eccezione è un evento che si è verificato durante l'esecuzione di un programma in Java che sta sostanzialmente ostacolando l'esecuzione complessiva del codice. A volte il sistema gestisce l'eccezione per impostazione predefinita, ma in alcuni casi è necessario gestire l'eccezione in base al nostro codice o alle situazioni in modo esplicito. La gestione delle eccezioni in modo personalizzato può essere gestita utilizzando: provare, catturare, lanciare, lanciare e infine parole chiave. Quando vogliamo definire un'eccezione all'interno del nostro codice, useremo throw, mentre quando vogliamo definire esplicitamente più eccezioni, useremo i tiri. In questo argomento, discuteremo i confronti tra i tiri contro i tiri

Cos'è Throw?

Quando vogliamo gestire qualsiasi eccezione nel nostro codice che è deselezionata, useremo throw. Un tiro può essere utilizzato all'interno del nostro codice per gestire le eccezioni in modo esplicito. Ricorda, possiamo usare un solo tipo di eccezione alla volta usando il lancio. Se si desidera utilizzare il lancio multiplo, è necessario utilizzare il tiro tante volte.

Sintassi:

throw

Esempio:

throw new ArithmeticException();

Tali istanze di eccezione devono essere sottoclasse denominate Throwable. Questo perché Throwable ha la sua sottoclasse denominata Exception, e sotto la classe di eccezione, risiedono tutte le classi di eccezioni definite dall'utente. Pertanto, assicurarsi di utilizzare istanze di eccezione che sono sottoclassi nella riga di lancio

Ora, cerchiamo di capire il flusso del programma quando lo usiamo per lanciare. Il codice scorrerà fino a quando non raggiunge il lancio e, successivamente, cercherà il blocco try-catch. Il blocco try viene esaminato per verificare se all'interno del blocco catch è presente un'istruzione che ha menzionato un'eccezione simile all'occorrenza. Se sì, il controllo viene spostato su quello. In caso contrario, cercherà il prossimo blocco try-catch e questo continua. Supponiamo che non trovi alcun blocco try-catch per gestire un'eccezione, quindi il sistema gestirà l'eccezione usando il gestore predefinito dell'eccezione e il codice verrà terminato.

Cosa sono i tiri?

Quando supponiamo che un metodo possa mostrare alcune eccezioni nel nostro codice in base all'esperienza, menzioniamo tutte le eccezioni nella firma del metodo utilizzando la parola chiave throw. Tutte le eccezioni verranno menzionate separate da virgole.

Sintassi:

() throws,

Esempio:

void ExceptionExample() throws ArithmeticException, NullPointerException
(
//code
)

Dato che hai un'idea di cosa fanno i tiri e i lanci, diamo un'occhiata alle differenze tra i tiri e i tiri come di seguito:

Confronto testa a testa tra tiro contro tiro (infografica)

Di seguito sono elencate le 5 principali differenze tra Throw vs Throws in Java

Differenze chiave tra lancio e lancio

Vediamo le differenze chiave tra Lancio contro Lancio in Java come di seguito:

  • Quando vogliamo definire un'eccezione all'interno del nostro codice, utilizzeremo il lancio. Ma, quando vogliamo definire esplicitamente le eccezioni, utilizzeremo i tiri.
  • Se utilizziamo il lancio, il codice non può fluire in caso di eccezioni verificate. Quando le eccezioni vengono verificate, può scorrere attraverso i tiri
  • Per quanto riguarda la sintassi, scriviamo una variabile per l'istanza dopo il lancio. Consideriamo che scriviamo classi di eccezioni separate da virgole dopo i tiri
  • Usiamo il tiro sotto una definizione di metodo. Considerando che dichiariamo genera eccezioni nella firma di un metodo.
  • Il tiro ha una limitazione nel gestire l'unica eccezione alla volta. D'altra parte, i tiri possono gestire più eccezioni.

Tabella comparativa Lancia contro Lancia

Discutiamo il miglior confronto tra Throw vs Throws in Java

Base di confronto tra tiro contro tiro

Gettare

Genera

Come o quando usareIn quei casi, quando dobbiamo fornire un'eccezione logica all'interno del codice, in quei casi, generalmente, usiamo la parola chiave throw sotto una funzione.

void ExceptionExample() throws ArithmeticException,
NullPointerException
(
throw

In quei casi, quando l'affermazione di una funzione può comportare un'eccezione, in quei casi, generalmente, usiamo la parola chiave throw con una funzione per gestire tali eccezioni.

void ExceptionExample() throws ArithmeticException,
NullPointerException
(
throw new NullPointerException ();
)

Sulla base del conteggio delle eccezioniIn un singolo momento, il tiro può essere usato per lanciare solo un'eccezione. Quando avremo bisogno di lanciare una particolare eccezione, useremo il tiro.

Per esempio:

// throw only a particular exception
throw new NullPointerException ();

I tiri possono gestire più eccezioni. Quando abbiamo bisogno di gestire più eccezioni, possiamo usare i tiri, in cui il nome delle eccezioni è indicato con una virgola. Quando si verifica un'eccezione, si abbinerà automaticamente alle eccezioni dichiarate con i tiri e gestirà di conseguenza.

Per esempio:

void ExceptionExample() throws ArithmeticException,
NullPointerException
(
throw new NullPointerException ();
)

Sulla prospettiva della sintassiUsiamo il lancio all'interno di una funzione e per gestire un solo tipo di eccezione

Per esempio:

// throw only a particular exception
throw new NullPointerException ();

Useremo throw con una funzione per gestire più eccezioni in una volta sola usando il nome di quelle classi di eccezioni.

Per esempio:

void ExceptionExample() throws ArithmeticException,
NullPointerException
(
throw new NullPointerException ();
)

Prospettiva selezionata / non selezionataLe eccezioni verificate non possono essere gestite tramite lancio. Può gestire solo le eccezioni non selezionate che non possono essere gestite dai tiri o dalle eccezioni verificate.

Per esempio:

void ExceptionExample() throws ArithmeticException,
NullPointerException
(
throw new NullPointerException (); //null pointer was not checked
, hence we used in throw
)

Quando conosciamo l'eccezione apriori e menzioniamo quelli nei tiri, quelli diventeranno eccezioni verificate.

Per esempio:

void ExceptionExample() throws ArithmeticException,
NullPointerException //explicit checked exceptions
(
//other code
)

Esempio di codiceGettare:

public class ExceptionExample (
public static void main(String() args)
(
// Use of checked Exception by throw
try (
double num=1/0;
throw new ArithmeticException();
)
catch (ArithmeticException e)
(
e.printStackTrace();
)
)
)

Produce:

import java.io.IOException;
public class ExceptionExample (
public static void main(String() args)
throws ArithmeticException //here we use unchecked
exception by throws
(
double num=1/0;
System.out.println (num);
)
)

Conclusione

Queste sono differenze tra lancio e lancio in Java. I tiri possono darti la libertà di usare più eccezioni in una volta sola, ma il lancio non può. Principalmente basato su questa distinzione, è necessario utilizzare i tiri se è necessario fornire più eccezioni in una sola volta se non si è sicuri quindi utilizzare semplicemente il tiro per mettere le eccezioni una per una.

Articoli consigliati

Questa è una guida a Throw vs Throws in Java. Qui discutiamo delle differenze chiave tra lancio e lancio in Java con infografica e tabella comparativa. Puoi anche consultare i nostri altri articoli suggeriti per saperne di più -

  1. Elenco Java vs Elenco array
  2. JavaScript vs VBScript
  3. PHP vs JavaScript
  4. C vs Java

Categoria: