De Java gooit trefwoord wordt gebruikt om een uitzondering aan te geven. Het geeft de programmeur informatie dat er een uitzondering kan optreden. Het is dus beter voor de programmeur om de code voor het afhandelen van uitzonderingen aan te bieden, zodat de normale stroom van het programma kan worden gehandhaafd.
Exception Handling wordt voornamelijk gebruikt om de gecontroleerde uitzonderingen af te handelen. Als er een ongecontroleerde uitzondering optreedt, zoals NullPointerException, is het de schuld van de programmeur dat hij de code niet controleert voordat deze wordt gebruikt.
scripts uitvoeren onder Linux
Syntaxis van Java-worpen
return_type method_name() throws exception_class_name{ //method code }
Welke uitzondering moet worden verklaard?
Jaren: Alleen uitzondering aangevinkt, omdat:
Voordeel van Java gooit trefwoord
Nu kan de gecontroleerde uitzondering worden doorgegeven (doorgestuurd in de call-stack).
Het geeft informatie aan de aanroeper van de methode over de uitzondering.
Java gooit Voorbeeld
Laten we eens kijken naar het voorbeeld van de Java throws-clausule, die beschrijft dat gecontroleerde uitzonderingen kunnen worden doorgegeven door het throws-trefwoord.
Proefworpen1.java
import java.io.IOException; class Testthrows1{ void m()throws IOException{ throw new IOException('device error');//checked exception } void n()throws IOException{ m(); } void p(){ try{ n(); }catch(Exception e){System.out.println('exception handled');} } public static void main(String args[]){ Testthrows1 obj=new Testthrows1(); obj.p(); System.out.println('normal flow...'); } }Test het nu
Uitgang:
exception handled normal flow...
Regel: Als we een methode aanroepen die een uitzondering declareert, moeten we de uitzondering opvangen of declareren.
Er zijn twee gevallen:
Geval 1: Uitzondering afhandelen met behulp van een try-catch-blok
Als we de uitzondering afhandelen, wordt de code prima uitgevoerd, ongeacht of er tijdens het programma een uitzondering optreedt of niet.
Proefworpen2.java
import java.io.*; class M{ void method()throws IOException{ throw new IOException('device error'); } } public class Testthrows2{ public static void main(String args[]){ try{ M m=new M(); m.method(); }catch(Exception e){System.out.println('exception handled');} System.out.println('normal flow...'); } }Test het nu
Uitgang:
verschil tussen twee snaren Python
exception handled normal flow...
Geval 2: Uitzondering declareren
- Als we de uitzondering declareren en de uitzondering niet optreedt, wordt de code prima uitgevoerd.
- In het geval dat we de uitzondering declareren en de uitzondering optreedt, wordt deze tijdens runtime gegenereerd omdat gooit behandelt de uitzondering niet.
Laten we voorbeelden bekijken voor beide scenario's.
sterpatroon afdrukken
A) Als er geen uitzondering optreedt
Proefworpen3.java
import java.io.*; class M{ void method()throws IOException{ System.out.println('device operation performed'); } } class Testthrows3{ public static void main(String args[])throws IOException{//declare exception M m=new M(); m.method(); System.out.println('normal flow...'); } }Test het nu
Uitgang:
device operation performed normal flow...
B) Als er een uitzondering optreedt
Proefworpen4.java
import java.io.*; class M{ void method()throws IOException{ throw new IOException('device error'); } } class Testthrows4{ public static void main(String args[])throws IOException{//declare exception M m=new M(); m.method(); System.out.println('normal flow...'); } }Test het nu
Uitgang:
Verschil tussen gooien en worpen
Klik op mij voor detailsQue) Kunnen we een uitzondering opnieuw invoeren?
Ja, door dezelfde uitzondering in het catch-blok te gooien.