Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Virheenkäsittelyn Perusteet Pythonissa: Koodin Kaatumisen Estäminen | Mastering Error Handling in Python
Pythonin Rakenteellinen Ohjelmointi

bookVirheenkäsittelyn Perusteet Pythonissa: Koodin Kaatumisen Estäminen

Virheenkäsittely on olennainen taito jokaiselle ohjelmoijalle, sillä sen avulla ohjelmat voivat reagoida asianmukaisesti odottamattomiin tilanteisiin. Tässä luvussa käsitellään virheiden ja poikkeusten tyyppejä, joita saatat kohdata, sekä niiden käsittelyä try- ja except-lohkojen avulla.

Virheiden ja poikkeusten tyypit Pythonissa

Python jakaa virheet kahteen päätyyppiin: syntaksivirheisiin ja poikkeuksiin.

Syntaksivirheet

Syntaksivirheet ilmenevät, kun jäsentäjä havaitsee virheellisen lauseen. Tämä voi johtua esimerkiksi kirjoitusvirheestä, puuttuvasta sulusta tai väärästä sisennyksestä. Tässä esimerkki:

1
print("Hello world"
copy

Tämä aiheuttaa syntaksivirheen (SyntaxError), koska sulkeva sulku puuttuu.

Poikkeukset eli ajoaikaiset virheet

Poikkeukset ovat virheitä, jotka havaitaan ohjelman suorituksen aikana. Yleisiä poikkeuksia ovat:

  • IndexError: yritetään käyttää indeksiä, jota ei ole olemassa;
  • ValueError: annetaan argumentti väärällä arvolla;
  • TypeError: tietotyyppien yhteensopimattomuus, kuten yritetään lisätä merkkijonoa kokonaislukuun;
  • ZeroDivisionError: jaetaan luku nollalla;
  • FileNotFoundError: yritetään käyttää tiedostoa, jota ei ole olemassa.

Tässä on poikkeushierarkia, jossa jokainen alemman tason virhe perii ylemmän tason virheeltä. Tämä tarkoittaa, että jos käsittelet ylemmän tason poikkeuksen, kuten Exception, se kattaa myös kaikki siitä johdetut 'lapsi'-virheet. Kaikkia virheitä ei tarvitse tuntea, mutta keltaisella korostetut ovat yleisimpiä ja erityisen tärkeitä tiedostaa.

try, except -lohko

Poikkeusten hallintaan Pythonissa käytetään try- ja except-lohkoja. Näin ohjelma voi jatkaa toimintaansa, vaikka virhe tapahtuisi.

Esimerkki try, except -lohkosta

1234567
try: # Attempt to divide by zero result = 10 / 0 print("The result is", result) except ZeroDivisionError: # This code runs if the ZeroDivisionError is raised print("Attempted to divide by zero.")
copy

Jos jakaminen olisi mahdollista (eli jaetaan jollakin muulla luvulla kuin nolla), try-lohkon sisällä oleva print-lause suoritettaisiin ja except-lohko ohitettaisiin. Except-lohko suoritetaan vain silloin, kun juuri se virhe, jonka se on suunniteltu käsittelemään, tapahtuu.

Tehtävä

Swipe to start coding

Kirjoita skripti, joka käsittelee erilaisia virhetyyppejä perusoperaatioiden avulla.

#Käytä kommentteja hyödyllisinä vinkkeinä tämän tehtävän ratkaisemiseksi 😉

Ratkaisu

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 2. Luku 1
single

single

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

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

Suggested prompts:

Can you explain the difference between syntax errors and exceptions in more detail?

How do I know which exception to catch in my code?

Can you give more examples of using try and except blocks?

close

bookVirheenkäsittelyn Perusteet Pythonissa: Koodin Kaatumisen Estäminen

Pyyhkäise näyttääksesi valikon

Virheenkäsittely on olennainen taito jokaiselle ohjelmoijalle, sillä sen avulla ohjelmat voivat reagoida asianmukaisesti odottamattomiin tilanteisiin. Tässä luvussa käsitellään virheiden ja poikkeusten tyyppejä, joita saatat kohdata, sekä niiden käsittelyä try- ja except-lohkojen avulla.

Virheiden ja poikkeusten tyypit Pythonissa

Python jakaa virheet kahteen päätyyppiin: syntaksivirheisiin ja poikkeuksiin.

Syntaksivirheet

Syntaksivirheet ilmenevät, kun jäsentäjä havaitsee virheellisen lauseen. Tämä voi johtua esimerkiksi kirjoitusvirheestä, puuttuvasta sulusta tai väärästä sisennyksestä. Tässä esimerkki:

1
print("Hello world"
copy

Tämä aiheuttaa syntaksivirheen (SyntaxError), koska sulkeva sulku puuttuu.

Poikkeukset eli ajoaikaiset virheet

Poikkeukset ovat virheitä, jotka havaitaan ohjelman suorituksen aikana. Yleisiä poikkeuksia ovat:

  • IndexError: yritetään käyttää indeksiä, jota ei ole olemassa;
  • ValueError: annetaan argumentti väärällä arvolla;
  • TypeError: tietotyyppien yhteensopimattomuus, kuten yritetään lisätä merkkijonoa kokonaislukuun;
  • ZeroDivisionError: jaetaan luku nollalla;
  • FileNotFoundError: yritetään käyttää tiedostoa, jota ei ole olemassa.

Tässä on poikkeushierarkia, jossa jokainen alemman tason virhe perii ylemmän tason virheeltä. Tämä tarkoittaa, että jos käsittelet ylemmän tason poikkeuksen, kuten Exception, se kattaa myös kaikki siitä johdetut 'lapsi'-virheet. Kaikkia virheitä ei tarvitse tuntea, mutta keltaisella korostetut ovat yleisimpiä ja erityisen tärkeitä tiedostaa.

try, except -lohko

Poikkeusten hallintaan Pythonissa käytetään try- ja except-lohkoja. Näin ohjelma voi jatkaa toimintaansa, vaikka virhe tapahtuisi.

Esimerkki try, except -lohkosta

1234567
try: # Attempt to divide by zero result = 10 / 0 print("The result is", result) except ZeroDivisionError: # This code runs if the ZeroDivisionError is raised print("Attempted to divide by zero.")
copy

Jos jakaminen olisi mahdollista (eli jaetaan jollakin muulla luvulla kuin nolla), try-lohkon sisällä oleva print-lause suoritettaisiin ja except-lohko ohitettaisiin. Except-lohko suoritetaan vain silloin, kun juuri se virhe, jonka se on suunniteltu käsittelemään, tapahtuu.

Tehtävä

Swipe to start coding

Kirjoita skripti, joka käsittelee erilaisia virhetyyppejä perusoperaatioiden avulla.

#Käytä kommentteja hyödyllisinä vinkkeinä tämän tehtävän ratkaisemiseksi 😉

Ratkaisu

Switch to desktopVaihda työpöytään todellista harjoitusta vartenJatka siitä, missä olet käyttämällä jotakin alla olevista vaihtoehdoista
Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 2. Luku 1
single

single

some-alt