Menu
Coddy logo textTech

Obsługa wielu wyjątków

Część sekcji Logika i przepływ programu ścieżki Python w Coddy. Lekcja 65 z 78.

W Pythonie możemy obsługiwać różne typy wyjątków w osobnych blokach except. Dzięki temu możemy reagować różnie w zależności od konkretnego błędu, który wystąpi.

Zacznij od podstawowej struktury try-except:

try:
    # Kod, który może zgłaszać wyjątki
    pass
except Exception as e:
    # Obsłuż dowolny wyjątek
    pass

Aby obsłużyć wiele wyjątków, dodaj konkretne bloki except:

try:
    number = int(input("Enter a number: "))
    result = 10 / number
    print(result)
except ValueError:
    print("That's not a valid number!")
except ZeroDivisionError:
    print("Cannot divide by zero!")

Możesz też przechwycić kilka typów wyjątków w jednym bloku except:

try:
    # Jakiś kod
    pass
except (ValueError, TypeError):
    print("Invalid input type!")

Kolejność bloków except ma znaczenie — zawsze umieszczaj bardziej szczegółowe wyjątki przed bardziej ogólnymi.

challenge icon

Wyzwanie

Łatwy

Utwórz funkcję o nazwie process_data, która:

  1. Przyjmuje ciąg znaków reprezentujący potencjalne dane
  2. Próbuje przekonwertować go na liczbę całkowitą, a następnie oblicza 100 podzielone przez tę liczbę całkowitą
  3. Zwraca wynik
  4. Obsługuje co najmniej 3 możliwe wyjątki: 
    • ValueError, jeśli dane wejściowe nie mogą zostać przekonwertowane na liczbę całkowitą (wypisz "Input must be a number!")
    • ZeroDivisionError, jeśli dane wejściowe wynoszą 0 (wypisz "Cannot divide by zero!")
    • Dowolny inny wyjątek za pomocą ogólnej obsługi (wypisz "An unexpected error occurred!")

Spróbuj swoich sił

def process_data(input_string):
    try:
        # Spróbuj przekonwertować ciąg wejściowy na liczbę całkowitą
        
        # Oblicz wynik dzielenia 100 przez wartość wejściową
        
        # Zwróć wynik
        
    except ValueError:
        # Obsłuż przypadek, gdy wartości wejściowej nie można przekonwertować na liczbę całkowitą
        
    except ZeroDivisionError:
        # Obsłuż przypadek, gdy wartość wejściowa wynosi zero
        
    except:
        # Obsłuż wszelkie inne nieoczekiwane wyjątki
        
    return None
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Logika i przepływ programu

Poćwicz samodzielnie: Kompilator Python online