Felhantering

Intermediate Python för utvecklare

Jasmin Ludolf

Senior Data Science Content Developer

Pandas traceback

Traceback som visar kod som avsiktligt returnerar ett fel

  • except, raise

  • Försök förutse hur fel kan uppstå

Intermediate Python för utvecklare

Designtänkande

  • Hur kan användare använda vår anpassade funktion?
  • Testa olika tillvägagångssätt
  • Identifiera möjliga fel

Olika pendlingstyper i staden

Intermediate Python för utvecklare

Felhantering i anpassade funktioner

def average(values):
    # Calculate the average
    average_value = sum(values) / len(values)
    return average_value
Intermediate Python för utvecklare

Var kan det gå fel?

  • average() förväntar sig en lista eller mängd
  • Ange mer än ett argument 🛑
  • Använd fel datatyp 🛑
Intermediate Python för utvecklare

Var kan det gå fel?

sales_dict = {"cust_id": ["JL93", "MT12", "IY64"],
              "order_value": [43.21, 68.70, 82.19]}
print(average(sales_dict))

Traceback med TypeError

Intermediate Python för utvecklare

Tidigare felhantering

  • Kontrollflöde med if, elif, else
  • Docstrings
Intermediate Python för utvecklare

try-except

def average(values):

try:
# Code that might cause an error average_value = sum(values) / len(values) return average_value
except:
# Code to run if an error occurs print("average() accepts a list or set. Please provide a correct data type.")
Intermediate Python för utvecklare

raise

def average(values):
    # Check data type
    if type(values) in (list, set):

# Run if appropriate data type was used average_value = sum(values) / len(values) return average_value
Intermediate Python för utvecklare

raise

def average(values):
    # Check data type
    if type(values) in (list, set):

# Run if appropriate data type was used average_value = sum(values) / len(values) return average_value
else: # Run if an Exception occurs raise
Intermediate Python för utvecklare

raise TypeError

def average(values):
    # Check data type
    if type(values) in (list, set):

# Run if appropriate data type was used average_value = sum(values) / len(values) return average_value
else: # Run if an Exception occurs raise TypeError("average() accepts a list or set, please provide a correct data type.")
Intermediate Python för utvecklare

raise TypeError – utdata

print(average(sales_dict))

TypeError-utdata med det anpassade meddelandet om att ange rätt datatyp

Intermediate Python för utvecklare

try-except kontra raise

try-except

  • Förhindrar att fel uppstår
  • Fortsätter köra efterföljande kod

raise

  • Genererar ett fel
  • Avbryter efterföljande kod
Intermediate Python för utvecklare

Nu kör vi en övning!

Intermediate Python för utvecklare

Preparing Video For Download...