Forskellen mellem Throw vs Throws i Java

En undtagelse er en begivenhed, der er sket under udførelsen af ​​et program i java, der dybest set hæmmer den samlede udførelse af koden. Nogle gange håndterer systemet undtagelsen som standard, men i nogle tilfælde er vi nødt til at håndtere undtagelse baseret på vores kode eller situationer eksplicit. Undtagelse aflevering på tilpasset måde kan håndteres ved hjælp af: prøv, fang, kast, kast og til sidst nøgleord. Når vi ønsker at definere undtagelse i vores kode, bruger vi kast, mens vi, når vi ønsker at definere flere undtagelser eksplicit, bruger kast. I dette emne vil vi diskutere sammenligninger mellem kast og kast

Hvad er kastet?

Når vi vil håndtere enhver undtagelse i vores kode, som ikke er markeret, bruger vi kast. Et kast kan bruges i vores kode til at håndtere undtagelser på en eksplicit måde. Husk, at vi kun kan håndtere en type undtagelser ad gangen ved hjælp af kast. Hvis du vil bruge til flere brug af kast, skal du bruge kast det mange gange.

Syntaks:

throw

Eksempel:

throw new ArithmeticException();

Disse undtagelsesinstanser kræves at være underklasse kaldet Throwable. Dette skyldes, at Throwable har sin underklasse kaldet Undtagelse, og under undtagelsesklasse er alle de brugerdefinerede undtagelsesklasser bosiddende. Sørg derfor for, at du bruger undtagelsesforekomster, der er underklasser under linjen med kastbar

Lad os nu forstå strømmen af ​​programmet, når vi bruger det til at kaste. Koden flyder igennem, indtil den når kastet, og efter dette søger den efter try-catch-blokken. Forsøgsblokken undersøges for at kontrollere, om der er nogen udsagn inde i fangstblokken, der har nævnt undtagelse svarende til forekomsten. Hvis ja, flyttes kontrol til det. Hvis ikke, søger den efter den næste try-catch-blok, og dette fortsætter. Antag, at den ikke finder nogen sådan try-catch-blok til at håndtere en undtagelse, så vil systemet håndtere undtagelse ved hjælp af standardhåndtering af undtagelse og kode afsluttes.

Hvad er kastet?

Når vi antager, at en metode kan vise nogle undtagelser i vores kode baseret på erfaring, nævner vi alle undtagelser i metodesignaturen ved hjælp af throws-søgeord. Alle undtagelser vil blive nævnt adskilt af kommaer.

Syntaks:

() throws,

Eksempel:

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

Når du har fået en idé om, hvad kast og kast gør, så lad os se på forskellene mellem kast og kast som nedenfor:

Sammenligning af hoved til hoved mellem Throw vs Throws (Infographics)

Nedenfor er de top 5 forskelle mellem Throw vs Throws i Java

Vigtige forskelle mellem Throw vs Throws

Lad os se på de vigtigste forskelle mellem Throw vs Throws in java som nedenfor:

  • Når vi ønsker at definere en undtagelse i vores kode, bruger vi throw. Men når vi ønsker at definere undtagelser eksplicit, bruger vi kast.
  • Hvis vi bruger kast, kan kode ikke flyde i tilfælde af kontrollerede undtagelser. Når undtagelserne er kontrolleret, kan det flydes ved hjælp af kast
  • Syntaksvis skriver vi en variabel til forekomsten efter kast. Mens vi skriver undtagelsesklasser adskilt med komma efter kast
  • Vi bruger throw under en metodedefinition. Mens vi erklærer undtagelser fra underskud i underskrivelsen af ​​en metode.
  • Throw har en begrænsning af håndtering af den eneste undtagelse ad gangen. På den anden side kan Throws håndtere flere undtagelser.

Kast sammen med kaster sammenligningstabel

Lad os diskutere den bedste sammenligning mellem Throw vs Throws i Java

Grundlag for sammenligning mellem Throw vs Throws

Kaste

kaster

Hvordan eller hvornår man skal brugeI disse tilfælde, når vi er nødt til at tilvejebringe en logisk undtagelse inde i koden, bruger vi i disse tilfælde generelt kast-nøgleord under en funktion.

void ExceptionExample() throws ArithmeticException,
NullPointerException
(
throw

I sådanne tilfælde, når erklæringen om en funktion kan resultere i en undtagelse, bruger vi i disse tilfælde generelt kast-nøgleord med en funktion til at håndtere disse undtagelser.

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

På basis af undtagelsestællingPå et enkelt tidspunkt kan kastet bruges til kun at kaste en undtagelse. Når vi skal kaste en bestemt undtagelse, bruger vi kast.

For eksempel:

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

Kaster kan håndtere flere undtagelser. Når vi skal håndtere flere undtagelser, kan vi bruge kast, hvor navnet på undtagelserne nævnes med adskilt af et komma. Når en undtagelse sker, vil den automatisk matche de erklærede undtagelser med kast og håndtere i overensstemmelse hermed.

For eksempel:

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

På syntaks perspektivVi bruger kast inden i en funktion og til at håndtere en enkelt type undtagelse

For eksempel:

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

Vi bruger kast med en funktion til at håndtere flere undtagelser på én gang ved at bruge navnet på disse undtagelsesklasser.

For eksempel:

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

Kontrolleret / ikke-markeret perspektivKontrollerede undtagelser kan ikke håndteres ved kast. Det kan kun håndtere ukontrollerede undtagelser, der ikke kan håndteres ved kast eller kontrollerede undtagelser.

For eksempel:

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

Når vi kender undtagelsen apriori og nævner dem i kast, vil de blive kontrollerede undtagelser.

For eksempel:

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

KodeeksempelKaste:

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();
)
)
)

kaster:

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

Konklusion

Dette er forskelle mellem kast og kast i Java. Kaster kan give dig frihed til at bruge flere undtagelser på én gang, men kast kan ikke. Primært baseret på denne sondring skal du bruge kast, hvis du har brug for at give flere undtagelser på én gang, hvis du ikke er sikker, skal du blot bruge kast til at sætte undtagelser en efter en.

Anbefalede artikler

Dette er en guide til Throw vs Throws i Java. Her diskuterer vi kast og kast i java nøgleforskelle med infografik og sammenligningstabel. Du kan også gennemgå vores andre foreslåede artikler for at lære mere -

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

Kategori: