Virheenkä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:
1print("Hello world"
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
1234567try: # 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.")
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.
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
Kiitos palautteestasi!
single
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme
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?
Mahtavaa!
Completion arvosana parantunut arvoon 3.13
Virheenkä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:
1print("Hello world"
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
1234567try: # 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.")
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.
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
Kiitos palautteestasi!
single