Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Try-Catch-Lohkojen Käyttö | Osio
Practice
Projects
Quizzes & Challenges
Visat
Challenges
/
Java-Poikkeusten Käsittely

bookTry-Catch-Lohkojen Käyttö

Pyyhkäise näyttääksesi valikon

Java-ohjelmoinnissa try-catch-lohkoa käytetään poikkeusten käsittelyyn ja varmistamaan, että ohjelma voi palautua odottamattomista virheistä hallitusti. Try-catch-lohkon päätarkoitus on sijoittaa koodi, joka saattaa aiheuttaa poikkeuksen, try-osioon ja tarjota yksi tai useampi catch-osio vastaamaan tiettyihin poikkeustyyppeihin, jos niitä ilmenee. Tämä rakenne estää ohjelmaa kaatumasta virheen sattuessa ja mahdollistaa virheen käsittelyn hallitusti.

try {
    // code
} catch (Exception) {
    // exception handling
}

Kun poikkeus tapahtuu try-lohkon sisällä, Java lopettaa välittömästi jäljellä olevan koodin suorittamisen kyseisessä lohkossa ja etsii sopivaa catch-lohkoa. Jos sopiva catch-lohko löytyy, ohjaus siirtyy siihen, jolloin poikkeus voidaan käsitellä (esimerkiksi tulostamalla virheilmoitus tai tekemällä korjaavia toimenpiteitä). Kun catch-lohko on suoritettu, ohjelma jatkaa koodin suorittamista koko try-catch-rakenteen jälkeen. Tämä ohjausvirran muutos mahdollistaa virheistä toipumisen ilman, että ohjelma keskeytyy.

Main.java

Main.java

copy
123456789101112131415
package com.example; public class Main { public static void main(String[] args) { int numerator = 10; int denominator = 0; try { int result = numerator / denominator; System.out.println("Result: " + result); } catch (ArithmeticException e) { System.out.println("Cannot divide by zero!"); } System.out.println("Program continues after try-catch."); } }

Yllä olevassa koodissa jakolasku try-lohkon sisällä yrittää jakaa 10:llä 0:lla, mikä normaalisti aiheuttaisi ArithmeticException-poikkeuksen ja lopettaisi ohjelman. Koska koodi on kuitenkin try-catch-rakenteen sisällä, poikkeuksen heittyessä Java siirtyy välittömästi catch-lohkoon. Viesti "Cannot divide by zero!" tulostetaan, ja ohjelma jatkaa seuraavalle riville try-catch-lohkon jälkeen tulostaen "Program continues after try-catch."

Tämä havainnollistaa, kuinka catch-lohko estää ohjelmaa päättymästä odottamatta, mahdollistaen virheen käsittelyn ja ohjelman sujuvan etenemisen.

question mark

Mitä tapahtuu, jos poikkeus heitetään try-lohkon sisällä, mutta sille ei ole sopivaa catch-lohkoa?

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 1. Luku 4

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

Osio 1. Luku 4
some-alt