Introduktion till fel

Intermediate Python för utvecklare

Jasmin Ludolf

Senior Data Science Content Developer

Vad är ett fel?

  • Kod som bryter mot en regel
  • Fel = Exception
  • Gör att programmet avslutas!

Hierarki över några Python-undantag

1 https://docs.python.org/3/library/exceptions.html#exception-hierarchy
Intermediate Python för utvecklare

TypeError

  • Inkompatibla datatyper
"Hello" + 5

TypeError-utdata som visar att strängar och heltal inte kan kombineras

Intermediate Python för utvecklare

ValueError

float("Hello")

ValueError-utdata som bekräftar att strängen 'Hello' inte kan konverteras till ett flyttal

  • Värdet ligger utanför ett acceptabelt intervall
float("2")

Utdata som visar resultatet 2.0 utan fel

Intermediate Python för utvecklare

Tracebacks

Traceback-meddelande

Intermediate Python för utvecklare

Tracebacks

Traceback-meddelande med feltypen markerad

Intermediate Python för utvecklare

Tracebacks

Traceback-meddelande med den felorsakande koden markerad

Intermediate Python för utvecklare

Kod i paket

  • Paket innehåller andras kod, t.ex. egna funktioner
  • Kallas källkod
  • pip install <package> laddar ned källkoden till vår lokala miljö
  • pandas-funktionen pd.read_csv() kör koden för den anpassade funktionen i bakgrunden
Intermediate Python för utvecklare

Tracebacks från paket

# Import pandas package
import pandas as pd

# Create pandas DataFrame                 
products = pd.DataFrame({"ID": "ABC1",
                         "price": 29.99})

# Try to access the non-existent "tag" column
products["tag"]
Intermediate Python för utvecklare

Tracebacks från paket

Traceback vid försök att filtrera en pandas DataFrame på en kolumn som inte finns

Intermediate Python för utvecklare

Tracebacks från paket

Traceback som visar filen som orsakade felet, tillsammans med feltypen KeyError

Intermediate Python för utvecklare

Tracebacks från paket

Traceback med rad 3803 markerad

Intermediate Python för utvecklare

Tracebacks från paket

Traceback med base.py markerad

Intermediate Python för utvecklare

Tracebacks från paket

Traceback med KeyError markerad

Intermediate Python för utvecklare

Tracebacks från paket

Traceback som visar raden i vår kod som orsakade felet

Intermediate Python för utvecklare

Tracebacks från paket

Traceback som visar kod som avsiktligt genererar ett fel

Intermediate Python för utvecklare

Tracebacks från paket

Traceback med Raised markerad

Intermediate Python för utvecklare

Nu kör vi en övning!

Intermediate Python för utvecklare

Preparing Video For Download...