Python Academy · leksjon

Forstå unntak

Lær hva unntak er, og hvordan Python utløser dem.

Leksjon 1 av 414 trinn

Forstå unntak er en gratis leksjon i Python Academy på CoddyKit. Dette er leksjon 1 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Python Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Python Academy inneholder totalt 4 leksjoner.

Introduksjon

Unntak er Pythons mekanisme for å signalisere og håndtere feil under kjøring.

Hva er et unntak?

Et unntak er en hendelse som forstyrrer den normale programflyten. Python utløser unntak når det oppstår feil – for eksempel ved divisjon på null.
# 1 / 0  # raises ZeroDivisionError
print('exceptions demo')

Unntakshierarkiet

Alle unntak arver fra BaseException. De fleste unntak som er ment for brukere, arver fra Exception. Spesifikke typer er ValueError, TypeError, KeyError og så videre.
print(issubclass(ValueError, Exception))
print(issubclass(Exception, BaseException))

Vanlige innebygde unntak

TypeError: feil type. ValueError: riktig type, feil verdi. KeyError: en nøkkel mangler i en dict. IndexError: listeindeksen er utenfor området. AttributeError: attributtet finnes ikke.
# Examples:
# int('abc')       -> ValueError
# d['missing']     -> KeyError
# [1,2][9]         -> IndexError
print('common exceptions')

Traceback

Når et unntak ikke håndteres, skriver Python ut en traceback: kallstakken fra bunnen (det nyeste kallet) til toppen. Lær Dem å lese den.
def f(): return 1/0
# f()  # shows traceback
print('traceback demo')

Unntaksobjektet

Hvert unntak inneholder en melding. str(e) eller e.args gir beskrivelsen. Inne i except får De tilgang slik: except ValueError as e.
try:
    int('abc')
except ValueError as e:
    print(type(e).__name__, e)

Fange flere typer

except (TypeError, ValueError): fanger begge typene i én klausul.
def parse(x):
    try:
        return int(x)
    except (TypeError, ValueError):
        return None
print(parse('abc'), parse(None))

Exception Group (3.11+)

Python 3.11 introduserer ExceptionGroup for flere samtidige unntak, som håndteres med syntaksen except*.
# Python 3.11+:
# try: ...
# except* ValueError as eg:
#     print(eg.exceptions)
print('exception group demo')

Advarsler kontra unntak

import warnings; warnings.warn('msg') utsteder en advarsel uten å utløse et unntak. Bruk dette ved foreldede funksjoner og ikke-kritiske feil.
import warnings
warnings.warn('This is deprecated', DeprecationWarning)
print('warning issued')

sys.exc_info()

Inne i en except-blokk returnerer sys.exc_info() (type, value, traceback) – nyttig for å logge fullstendige detaljer om unntaket.
import sys
try:
    1/0
except:
    exc_type, exc_val, _ = sys.exc_info()
    print(exc_type, exc_val)

Kjeding av unntak

raise NewError('msg') from original_exc kjeder sammen unntak. Attributtet __cause__ knytter dem sammen.
try:
    int('abc')
except ValueError as e:
    raise RuntimeError('parse failed') from e

Hurtigsjekk

Hvilket unntak utløses når De bruker en nøkkel som ikke finnes til å slå opp i en dict?

Oppsummering

Unntak arver fra BaseException. Les tracebacks nedenfra og opp. Fang dem med except as e. Vanlige typer er ValueError, TypeError, KeyError, IndexError og AttributeError.

Fortsett

Godt jobbet! Gå videre til neste leksjon for å fortsette fremgangen.
Gratis å komme i gang

Lær deg Python med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
76
Leksjoner
320

Ofte stilte spørsmål

Er leksjonen «Forstå unntak» gratis?

Ja – hele teksten i «Forstå unntak» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av Python Academy-kurset, kan du oppgradere til CoddyKit PRO. Kurset i Python Academy inneholder totalt 4 leksjoner.

Hva lærer jeg i «Forstå unntak»?

Lær hva unntak er, og hvordan Python utløser dem. Du øver på Python Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med Python Academy?

Ingen tidligere erfaring er nødvendig. Python Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 1 av 4.

Hvor lang tid tar leksjonen «Forstå unntak»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne Python Academy-leksjonen?

Ja. Alle Python Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. Forstå unntak
  2. try / except / else / finally
  3. Utløse og utløse unntak på nytt
  4. Egendefinerte unntaksklasser
← Tilbake til Python Academy