Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Poikkeukset ja virheenkorjaus | Control Flow & Logic
Johdanto Python-ohjelmointiin Cursorilla

bookPoikkeukset ja virheenkorjaus

Ohjelmoinnissa virheet ovat väistämättömiä. Osa johtuu loogisista virheistä, toiset ilmenevät suorituksen aikana — kuten nollalla jakaminen, puuttuvan tiedoston avaaminen tai virheellisen syötteen muuntaminen.

Näitä suorituksen aikaisia virheitä kutsutaan poikkeuksiksi. Python käsittelee niitä try- ja except-lohkoilla, jolloin ohjelma voi palautua tai näyttää selkeän viestin kaatumisen sijaan.

Mikä on poikkeus?

Poikkeus on Pythonin merkki siitä, että tapahtui jotain odottamatonta. Se pysäyttää normaalin suorituksen ja näyttää jäljityksen, ellei sitä käsitellä.

Yleisiä esimerkkejä:

  • ZeroDivisionError: nollalla jakaminen;
  • ValueError: virheellinen arvo, kuten "abc" kokonaisluvuksi;
  • TypeError: yhteensopimattomat tyypit, esim. numero + merkkijono;
  • FileNotFoundError: puuttuvan tiedoston avaaminen;
  • IndexError: listan indeksi alueen ulkopuolella;
  • KeyError: puuttuva sanakirjan avain.

Poikkeukset ovat sisäänrakennettuja luokkia ja ne voidaan käsitellä except-lauseella.

Poikkeusten käsittely try- ja except-lauseilla

Riskialtis koodi kannattaa sijoittaa try-lohkoon kaatumisen estämiseksi. Jos virhe ilmenee, Python siirtyy except-lohkoon.

Siellä voidaan näyttää viesti, kirjata tiedot tai suorittaa vaihtoehtoinen toiminto.

Useita Except-lohkoja ja Yleinen Virheenkäsittely

Voit käsitellä tiettyjä virheitä erillisillä except-lohkoilla, tai käyttää yleistä except-lohkoa odottamattomien virheiden käsittelyyn.

Useita poikkeustyyppejä voidaan myös ryhmitellä yhteen lohkoon käyttämällä sulkuja.

Else- ja Finally-lauseet

Pythonin virheenkäsittelyyn voidaan sisällyttää myös else ja finally:

  • else suoritetaan vain, jos poikkeusta ei ilmennyt;
  • finally suoritetaan aina — myös poikkeuksen sattuessa.

finally-lohkoa käytetään usein tiedostojen sulkemiseen tai resurssien vapauttamiseen.

Virheiden etsintä print-komennolla

Virheiden etsintä auttaa selvittämään, missä ongelma tapahtui. Yksinkertainen tapa on lisätä print()-komentoja seuraamaan muuttujien arvoja ja ohjelman kulkua.

Tämä osoittaa, missä virheet ilmenevät ja auttaa rajaamaan ongelmia. Myöhemmin voidaan käyttää kehittyneempiä virheenkorjaustyökaluja, mutta print on aina hyödyllinen ensivaiheessa.

Yhteenveto

  • Poikkeukset ovat ajoaikaisia virheitä, kuten nollalla jako tai puuttuvat tiedostot;
  • Niitä voidaan käsitellä try- ja except-lohkoilla ohjelman kaatumisen estämiseksi;
  • Käytä mahdollisuuksien mukaan tarkkoja poikkeustyyppejä ja finally-lohkoa resurssien vapauttamiseen.
  • print() on ensisijainen ja nopein debuggaustyökalu.
question mark

Mitkä avainsanat käytetään virheiden käsittelyyn Pythonissa?

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 2. Luku 3

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

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

Suggested prompts:

What are some common exceptions in Python?

Can you explain what happens if an exception is not handled?

How do you identify where an exception occurred in your code?

Awesome!

Completion rate improved to 5

bookPoikkeukset ja virheenkorjaus

Pyyhkäise näyttääksesi valikon

Ohjelmoinnissa virheet ovat väistämättömiä. Osa johtuu loogisista virheistä, toiset ilmenevät suorituksen aikana — kuten nollalla jakaminen, puuttuvan tiedoston avaaminen tai virheellisen syötteen muuntaminen.

Näitä suorituksen aikaisia virheitä kutsutaan poikkeuksiksi. Python käsittelee niitä try- ja except-lohkoilla, jolloin ohjelma voi palautua tai näyttää selkeän viestin kaatumisen sijaan.

Mikä on poikkeus?

Poikkeus on Pythonin merkki siitä, että tapahtui jotain odottamatonta. Se pysäyttää normaalin suorituksen ja näyttää jäljityksen, ellei sitä käsitellä.

Yleisiä esimerkkejä:

  • ZeroDivisionError: nollalla jakaminen;
  • ValueError: virheellinen arvo, kuten "abc" kokonaisluvuksi;
  • TypeError: yhteensopimattomat tyypit, esim. numero + merkkijono;
  • FileNotFoundError: puuttuvan tiedoston avaaminen;
  • IndexError: listan indeksi alueen ulkopuolella;
  • KeyError: puuttuva sanakirjan avain.

Poikkeukset ovat sisäänrakennettuja luokkia ja ne voidaan käsitellä except-lauseella.

Poikkeusten käsittely try- ja except-lauseilla

Riskialtis koodi kannattaa sijoittaa try-lohkoon kaatumisen estämiseksi. Jos virhe ilmenee, Python siirtyy except-lohkoon.

Siellä voidaan näyttää viesti, kirjata tiedot tai suorittaa vaihtoehtoinen toiminto.

Useita Except-lohkoja ja Yleinen Virheenkäsittely

Voit käsitellä tiettyjä virheitä erillisillä except-lohkoilla, tai käyttää yleistä except-lohkoa odottamattomien virheiden käsittelyyn.

Useita poikkeustyyppejä voidaan myös ryhmitellä yhteen lohkoon käyttämällä sulkuja.

Else- ja Finally-lauseet

Pythonin virheenkäsittelyyn voidaan sisällyttää myös else ja finally:

  • else suoritetaan vain, jos poikkeusta ei ilmennyt;
  • finally suoritetaan aina — myös poikkeuksen sattuessa.

finally-lohkoa käytetään usein tiedostojen sulkemiseen tai resurssien vapauttamiseen.

Virheiden etsintä print-komennolla

Virheiden etsintä auttaa selvittämään, missä ongelma tapahtui. Yksinkertainen tapa on lisätä print()-komentoja seuraamaan muuttujien arvoja ja ohjelman kulkua.

Tämä osoittaa, missä virheet ilmenevät ja auttaa rajaamaan ongelmia. Myöhemmin voidaan käyttää kehittyneempiä virheenkorjaustyökaluja, mutta print on aina hyödyllinen ensivaiheessa.

Yhteenveto

  • Poikkeukset ovat ajoaikaisia virheitä, kuten nollalla jako tai puuttuvat tiedostot;
  • Niitä voidaan käsitellä try- ja except-lohkoilla ohjelman kaatumisen estämiseksi;
  • Käytä mahdollisuuksien mukaan tarkkoja poikkeustyyppejä ja finally-lohkoa resurssien vapauttamiseen.
  • print() on ensisijainen ja nopein debuggaustyökalu.
question mark

Mitkä avainsanat käytetään virheiden käsittelyyn Pythonissa?

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 2. Luku 3
some-alt