In Java stellen uitzonderingen ons in staat codes van goede kwaliteit te schrijven waarbij de fouten worden gecontroleerd tijdens het compileren in plaats van tijdens de runtime. We kunnen aangepaste uitzonderingen maken die het herstellen van de code en het debuggen eenvoudiger maken.
Java throw-trefwoord
Het Java-trefwoord throw wordt gebruikt om expliciet een uitzondering te genereren.
is een relatie
Wij specificeren de uitzondering voorwerp dat moet worden gegooid. De uitzondering bevat een bericht met de foutbeschrijving. Deze uitzonderingen kunnen verband houden met gebruikersinvoer, server, enz.
We kunnen gecontroleerde of niet-gecontroleerde uitzonderingen in Java genereren via het trefwoord throw. Het wordt voornamelijk gebruikt om een aangepaste uitzondering te genereren. Aangepaste uitzonderingen bespreken we later in deze sectie.
We kunnen ook onze eigen set voorwaarden definiëren en expliciet een uitzondering genereren met behulp van het trefwoord throw. We kunnen bijvoorbeeld ArithmeticException genereren als we een getal delen door een ander getal. Hier hoeven we alleen maar de voorwaarde in te stellen en een uitzondering te genereren met behulp van het trefwoord throw.
De syntaxis van het Java-trefwoord throw wordt hieronder gegeven.
gooi-instantie, dat wil zeggen,
throw new exception_class('error message');
Laten we het voorbeeld van throw IOException bekijken.
throw new IOException('sorry device error');
Waarbij de instance van het type Throwable of subklasse van Throwable moet zijn. Exception is bijvoorbeeld de subklasse van Throwable en de door de gebruiker gedefinieerde uitzonderingen breiden doorgaans de Exception-klasse uit.
tekenreeks converteren naar int in Java
Java-trefwoord voorbeeld
Voorbeeld 1: Ongecontroleerde uitzondering genereren
In dit voorbeeld hebben we een methode gemaakt met de naam validate() die een geheel getal als parameter accepteert. Als de leeftijd jonger is dan 18 jaar, gooien we de ArithmeticException, anders drukt u een bericht af om te stemmen.
TestThrow1.java
In dit voorbeeld hebben we de validate-methode gemaakt die de gehele waarde als parameter gebruikt. Als de leeftijd jonger is dan 18 jaar, gooien we de ArithmeticException, anders drukt u een bericht af om te stemmen.
public class TestThrow1 { //function to check if person is eligible to vote or not public static void validate(int age) { if(age<18) { throw arithmetic exception if not eligible to vote new arithmeticexception('person is vote'); } else system.out.println('person vote!!'); main method public static void main(string args[]){ calling the function validate(13); system.out.println('rest of code...'); < pre> <p> <strong>Output:</strong> </p> <img src="//techcodeview.com/img/exception-handling/63/java-throw-exception.webp" alt="Java throw keyword"> <p>The above code throw an unchecked exception. Similarly, we can also throw unchecked and user defined exceptions.</p> <h4>Note: If we throw unchecked exception from a method, it is must to handle the exception or declare in throws clause.</h4> <p>If we throw a checked exception using throw keyword, it is must to handle the exception using catch block or the method must declare it using throws declaration.</p> <h3>Example 2: Throwing Checked Exception</h3> <h4>Note: Every subclass of Error and RuntimeException is an unchecked exception in Java. A checked exception is everything else under the Throwable class.</h4> <p> <strong>TestThrow2.java</strong> </p> <pre> import java.io.*; public class TestThrow2 { //function to check if person is eligible to vote or not public static void method() throws FileNotFoundException { FileReader file = new FileReader('C:\Users\Anurati\Desktop\abc.txt'); BufferedReader fileInput = new BufferedReader(file); throw new FileNotFoundException(); } //main method public static void main(String args[]){ try { method(); } catch (FileNotFoundException e) { e.printStackTrace(); } System.out.println('rest of the code...'); } } </pre> <p> <strong>Output:</strong> </p> <img src="//techcodeview.com/img/exception-handling/63/java-throw-exception-2.webp" alt="Java throw keyword"> <h3>Example 3: Throwing User-defined Exception</h3> exception is everything else under the Throwable class. <p> <strong>TestThrow3.java</strong> </p> <pre> // class represents user-defined exception class UserDefinedException extends Exception { public UserDefinedException(String str) { // Calling constructor of parent Exception super(str); } } // Class that uses above MyException public class TestThrow3 { public static void main(String args[]) { try { // throw an object of user defined exception throw new UserDefinedException('This is user-defined exception'); } catch (UserDefinedException ude) { System.out.println('Caught the exception'); // Print the message from MyException object System.out.println(ude.getMessage()); } } } </pre> <p> <strong>Output:</strong> </p> <img src="//techcodeview.com/img/exception-handling/63/java-throw-exception-3.webp" alt="Java throw keyword"> <hr></18)>
Uitgang:
Voorbeeld 3: Door de gebruiker gedefinieerde uitzondering genereren
uitzondering is al het andere onder de klasse Throwable.TestThrow3.java
// class represents user-defined exception class UserDefinedException extends Exception { public UserDefinedException(String str) { // Calling constructor of parent Exception super(str); } } // Class that uses above MyException public class TestThrow3 { public static void main(String args[]) { try { // throw an object of user defined exception throw new UserDefinedException('This is user-defined exception'); } catch (UserDefinedException ude) { System.out.println('Caught the exception'); // Print the message from MyException object System.out.println(ude.getMessage()); } } }
Uitgang:
18)>