Modulelessen (1/2)
Try-Catch-blokken
In Java worden runtimefouten afgehandeld met behulp van Uitzonderingen. Door het afhandelen van uitzonderingen kunnen we abnormale omstandigheden onderscheppen en voorkomen dat het programma crasht.
De try-catch structuur
Om een mogelijke uitzondering af te handelen, plaatsen we de riskante code in een try blok. Als er een fout optreedt binnen het try blok, stopt de JVM met het uitvoeren ervan en zoekt hij naar een overeenkomend catch blok om de uitzondering af te handelen.
try {
int result = 10 / 0; // Generates ArithmeticException
System.out.println("This will not be printed");
} catch (ArithmeticException e) {
System.out.println("Arithmetic error occurred: " + e.getMessage());
}Het finally blok
Het blok finally is optioneel en wordt altijd uitgevoerd, ongeacht of er een uitzondering is opgetreden. Het is ideaal voor het vrijgeven van hulpbronnen of het uitvoeren van opruimwerkzaamheden.
try {
System.out.println("Executing logic");
} catch (Exception e) {
System.out.println("Error");
} finally {
System.out.println("This block is always executed");
}Uitzonderingen genereren: throw
We kunnen opzettelijk een uitzondering genereren door het trefwoord throw te gebruiken, gevolgd door een nieuw exemplaar van een uitzonderingsklasse.
public static void checkScore(int score) {
if (score < 0 || score > 100) {
throw new IllegalArgumentException("Score must be between 0 and 100");
}
}Probeer het zelf
Voltooi de code door een try-catch-blok in te voegen om een mogelijke ArithmeticException af te handelen die voortvloeit uit de deling a / b. Als er een fout optreedt, drukt u 'Fout: delen door nul' af.
Toon hint
Voer de delingsbewerking in een `try`-blok in en vang `ArithmeticException` op, waardoor het vereiste bericht wordt afgedrukt.
Oplossing beschikbaar na 3 pogingen
Voltooi de code om een try-catch-finally-blok te implementeren. Probeer in het try-blok de string str naar een geheel getal te converteren met behulp van Integer.parseInt. Onderschep in het catch-blok NumberFormatException en druk 'Ongeldig nummer' af. In het slotblok drukt u 'Eindelijk' af.
Toon hint
Schrijf de blokstructuur `try { ... } catch (NumberFormatException e) { ... } en ten slotte { ... }`.
Oplossing beschikbaar na 3 pogingen
Voltooi de methode checkAge door een IllegalArgumentException te genereren met het bericht 'Underage' als de opgegeven leeftijd jonger is dan 18 jaar.
Toon hint
Gebruik de trefwoorden 'if (age < 18)' en 'throw new' om de uitzondering te instantiëren en te genereren.
Oplossing beschikbaar na 3 pogingen