Ściągawka dotycząca wbudowanych wyjątków i typów błędów w Pythonie
Przewodnik informacyjny dotyczący typowych typów błędów języka Python. Dowiedz się, jak debugować ValueError, TypeError, IndexError, KeyError i zgłaszać wyjątki.
Typowe wyjątki dotyczące logiki i wartości
Wyjątki reprezentujące niedopasowane operacje, brakujące indeksy lub błędy zmiennych.
| Metoda / Funkcja | Składnia | Opis |
|---|---|---|
| ValueError | int("abc") | Wywoływany, gdy funkcja otrzymuje argument poprawnego typu, ale o niewłaściwej wartości. |
| TypeError | "1" + 2 | Wywoływany, gdy operacja lub funkcja jest stosowana do obiektu nieodpowiedniego typu. |
| IndexError | my_list[10] | Wywoływany, gdy indeks dolny sekwencji jest poza zakresem. |
| KeyError | my_dict["missing"] | Wywoływany, gdy nie znaleziono klucza słownika. |
| AttributeError | my_str.append("x") | Wywoływany, gdy odwołanie do atrybutu lub przypisanie nie powiedzie się (np. wywołanie metod listy w łańcuchu). |
Wyjątki środowiska wykonawczego i zasobów
Problemy związane z zewnętrznymi systemami plików, awarie obliczeń lub błędy składni wykonania.
| Metoda / Funkcja | Składnia | Opis |
|---|---|---|
| FileNotFoundError | open("missing.txt") | Wywoływany, gdy żądany jest plik lub katalog, który nie istnieje. |
| ZeroDivisionError | 1 / 0 | Wywoływany, gdy drugi argument dzielenia lub operacji modulo ma wartość zero. |
| SyntaxError | while True print("hi") | Wywoływany, gdy analizator napotka błąd składniowy. |
| NameError | print(undefined_variable) | Wywoływany, gdy nie znaleziono nazwy lokalnej lub globalnej. |
| StopIteration | next(exhausted_iterator) | Wywoływany przez wbudowaną funkcję next() w celu zasygnalizowania, że iterator nie ma dalszych elementów. |
Interaktywny skrypt demonstracyjny
# ValueError
int("abc")
# TypeError
"1" + 2
# IndexError
my_list[10]
# KeyError
my_dict["missing"]
# AttributeError
my_str.append("x")
# FileNotFoundError
open("missing.txt")
# ZeroDivisionError
1 / 0
# SyntaxError
while True print("hi")
# NameError
print(undefined_variable)
# StopIteration
next(exhausted_iterator)Często zadawane pytania
Jak złapać wiele wyjątków w Pythonie?
Można je określić jako krotkę w pojedynczym bloku z wyjątkiem, np. z wyjątkiem (ValueError, TypeError) jako e:.
Kiedy powinienem ręcznie zgłaszać wyjątki?
Zgłaszaj wyjątki za pomocą słowa kluczowego raise, gdy w kodzie wystąpi nieoczekiwany warunek uniemożliwiający normalne wykonanie, taki jak błędy sprawdzania poprawności.
Powiązane tematy
Opanuj instrukcje warunkowe, pętle i struktury sterujące pętlami w Pythonie. Dowiedz się, czy-w przeciwnym razie, na, podczas, przerwać i kontynuować.
Ściągawka dotycząca operacji na plikach w PythonieSkrócona instrukcja czytania i zapisywania plików w Pythonie. Opanuj tryby otwarte, menedżery kontekstu i czytanie linia po linii.
Ściągawka dotycząca funkcji wbudowanych w PythoniePrzewodnik informacyjny po wbudowanych funkcjach języka Python. Dowiedz się, jak używać funkcji drukowania, długości, zakresu, wyliczania, zip, mapy, filtrowania i nie tylko.
Polecane zasoby Pythona
Poszerzaj swoją wiedzę dzięki powiązanym interaktywnym samouczkom, ściągawkom i porównaniom kodów.
Obsługa prób/wyjątków i błędów w języku Python
Zapobiegaj awariom skryptów Pythona. Dowiedz się, jak blokować try, z wyjątkiem, wreszcie i jak prawidłowo zgłaszać wyjątki niestandardowe.
Jak sortować listę w Pythonie
Dowiedz się, jak sortować listę w Pythonie za pomocą metody sort() i funkcji sorted(). Odkryj przykłady niestandardowego sortowania kluczy i odwrotnej kolejności.
Python kontra TypeScript: dynamiczne skrypty a sieć bezpieczna dla typów
Porównaj Python i TypeScript. Dowiedz się o systemach typów strukturalnych, metadanych dekoratorów, kontrolach kompilatora, środowiskach wykonawczych sieci Web i narzędziach dla programistów.