Gestionarea erorilor

Python intermediar pentru dezvoltatori

Jasmin Ludolf

Senior Data Science Content Developer

Traceback Pandas

Traceback care afișează cod ce generează intenționat o eroare

  • except, raise

  • Anticipați modul în care pot apărea erori

Python intermediar pentru dezvoltatori

Gândire orientată spre design

  • Cum ar putea utiliza funcția personalizată?
  • Testați diferite abordări
  • Identificați erorile posibile

Diferite tipuri de deplasare în oraș

Python intermediar pentru dezvoltatori

Gestionarea erorilor în funcții personalizate

def average(values):
    # Calculate the average
    average_value = sum(values) / len(values)
    return average_value
Python intermediar pentru dezvoltatori

Unde pot apărea erori?

  • average() așteaptă o listă sau mulțime
  • Furnizați mai mult de un argument 🛑
  • Utilizați un tip de date incorect 🛑
Python intermediar pentru dezvoltatori

Unde pot apărea erori?

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

Traceback cu TypeError

Python intermediar pentru dezvoltatori

Gestionarea anterioară a erorilor

  • Flux de control if, elif, else
  • Docstrings
Python intermediar pentru dezvoltatori

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.")
Python intermediar pentru dezvoltatori

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
Python intermediar pentru dezvoltatori

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
Python intermediar pentru dezvoltatori

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.")
Python intermediar pentru dezvoltatori

Ieșire raise TypeError

print(average(sales_dict))

Ieșire TypeError cu mesajul personalizat pentru tipul de date corect

Python intermediar pentru dezvoltatori

try-except vs. raise

try-except

  • Previne generarea erorilor
  • Permite executarea codului următor

raise

  • Generează o eroare
  • Oprește executarea codului următor
Python intermediar pentru dezvoltatori

Să exersăm!

Python intermediar pentru dezvoltatori

Preparing Video For Download...