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

bookFinally-lohko

Pyyhkäise näyttääksesi valikon

Note
Määritelmä

finally-lohko Javassa on olennainen osa poikkeusten käsittelyä, joka varmistaa, että tietyt koodit suoritetaan aina riippumatta siitä, mitä try- tai catch-lohkoissa tapahtuu.

finally-lohkoa käytetään tyypillisesti resurssien vapauttamiseen, kuten tiedostojen sulkemiseen, verkkoyhteyksien vapauttamiseen tai muistin puhdistamiseen, jotta sovellus pysyy vakaana ja tehokkaana myös virhetilanteissa.

try {
    // code
} catch {
    // code
} finally {
    // code
}

finally-lohkon suoritus on erityistä, koska se suoritetaan aina, kun siihen liittyvä try-lause päättyy, riippumatta siitä, heitettiinkö poikkeus vai ei. Jos try-lohkon sisällä tapahtuu poikkeus ja se käsitellään catch-lohkossa, finally-lohko suoritetaan catch-lohkon jälkeen. Jos poikkeusta ei heitetä, finally-lohko suoritetaan silti try-lohkon jälkeen. Vaikka try- tai catch-lohkossa olisi return-lause, finally-lohko suoritetaan ennen kuin metodi palauttaa ohjauksen kutsujalle. Tämä tekee finally-lohkosta luotettavan paikan toimille, jotka on aina suoritettava, kuten tiedostojen sulkeminen tai muiden resurssien vapauttaminen.

Main.java

Main.java

copy
12345678910111213141516171819202122
package com.example; public class Main { public static void main(String[] args) { String[] numbers = {"10", "20", "not-a-number", "40"}; int index = 2; int result = 0; try { System.out.println("Attempting to parse value..."); result = Integer.parseInt(numbers[index]); System.out.println("Parsed value: " + result); } catch (NumberFormatException e) { System.out.println("Parsing failed: " + e.getMessage()); } finally { // This block always executes System.out.println("The 'finally' block has executed — cleanup or final steps go here."); } System.out.println("Program continues..."); } }

finally-lohko Javassa on erityinen lohko, joka suoritetaan aina try-lohkon jälkeen riippumatta siitä, heitettiinkö poikkeus tai käsiteltiinkö se. Sitä käytetään varmistamaan, että tärkeät loppuvaiheen toimet, kuten resurssien sulkeminen tai siivoustoimet, suoritetaan aina.

Yllä olevassa esimerkissä ohjelma yrittää jäsentää arvon taulukosta. Vaikka jäsentäminen epäonnistuisi ja catch-lohko suoritettaisiin, finally-lohko suoritetaan silti, mikä takaa, että lopullinen viesti tulostetaan ja tarvittavat siivoustoimet tehdään. Tämä tekee ohjelmasta luotettavamman ja estää resurssivuodot.

question mark

Mikä on taattu Java-ohjelmassa koodille, joka sijoitetaan finally-lohkoon?

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 1. Luku 6

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

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

Osio 1. Luku 6
some-alt