Direct naar de hoofdinhoud
Module 5 · Les 1 van 29/14 in de cursus~12 min
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.

Java
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.

Java
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.

Java
public static void checkScore(int score) {
    if (score < 0 || score > 100) {
        throw new IllegalArgumentException("Score must be between 0 and 100");
    }
}

Probeer het zelf

Oefening#java.m5.l1.e1
Pogingen: 0Laden…

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.

Editor laden…
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

Oefening#java.m5.l1.e2
Pogingen: 0Laden…

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.

Editor laden…
Toon hint

Schrijf de blokstructuur `try { ... } catch (NumberFormatException e) { ... } en ten slotte { ... }`.

Oplossing beschikbaar na 3 pogingen

Oefening#java.m5.l1.e3
Pogingen: 0Laden…

Voltooi de methode checkAge door een IllegalArgumentException te genereren met het bericht 'Underage' als de opgegeven leeftijd jonger is dan 18 jaar.

Editor laden…
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