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.
Przegląd
W prawdziwym świecie programowania błędy są całkowicie nieuniknione. Pliki mogą zostać usunięte, połączenia sieciowe mogą zostać zerwane lub użytkownik może wprowadzić literę, gdy skrypt oczekiwał liczby. Jeśli te scenariusze wystąpią bez zabezpieczeń, Python wstrzymuje wykonanie i zgłasza wyjątek (błąd czasu wykonania), powodując awarię całego programu. Obsługa błędów to sztuka umiejętnego przewidywania i radzenia sobie z błędami.
Podstawą zarządzania błędami w Pythonie jest struktura bloków „try” i „except”. Umieszczasz potencjalnie niebezpieczny kod w bloku „try”. Python spróbuje go wykonać. Jeśli wystąpi błąd, zamiast się zawiesić, Python przechwytuje wyjątek i natychmiast skacze w dół, aby wykonać kod zawarty w bloku `except`. Dzięki temu program może odzyskać siły, wyświetlić przyjazny komunikat o błędzie i kontynuować działanie.
Najważniejszą najlepszą praktyką jest wychwytywanie konkretnych, ukierunkowanych wyjątków zamiast pisania ogólnego bloku „z wyjątkiem:”. Na przykład przechwycenie „FileNotFoundError” lub „ValueError” wyraźnie gwarantuje, że rozwiążesz dokładnie ten problem, którego się spodziewałeś, zamiast przypadkowo maskować niepowiązane błędy (takie jak błąd składni), o których naprawdę musisz wiedzieć.
Python udostępnia także opcjonalny blok „else”, który jest wykonywany tylko wtedy, gdy blok „try” zakończy się pomyślnie i nie spowoduje żadnych błędów. To idealne miejsce na umieszczenie logiki, która całkowicie zależy od powodzenia niebezpiecznej operacji. Dodatkowo blok „w końcu” umożliwia wykonanie kodu bez względu na to, co się stanie — niezależnie od tego, czy wystąpił błąd, czy nie. Blok „w końcu” jest niezbędny do działań porządkowych, takich jak zamykanie połączeń z bazą danych lub zwalnianie blokad plików.
Oprócz wyłapywania błędów, Python umożliwia programistom jawne wyzwalanie ich za pomocą słowa kluczowego „raise”. Zgłoszenie wyjątku umożliwia wymuszenie ścisłych ograniczeń w logice i odrzucenie nieprawidłowych danych, zanim uszkodzą one stan aplikacji. Definiując niestandardowe klasy wyjątków, które dziedziczą z podstawowej klasy Pythona „Exception”, programiści mogą tworzyć hierarchie błędów specyficzne dla domeny dla ogromnych aplikacji korporacyjnych.
Dane wyjściowe kodu i wykonania
Tworzenie bezpieczeństwa strukturalnego podczas interakcji z potencjalnie niebezpiecznymi lub nieistniejącymi strukturami plików.
def divide_numbers(a, b):
try:
result = a / b
except ZeroDivisionError:
return "Error: Cannot divide by zero!"
except TypeError:
return "Error: Both arguments must be numbers."
else:
return f"The result is {result}"
finally:
print("Execution completed.")
print(divide_numbers(10, 2))
print(divide_numbers(10, 0))Execution completed.
The result is 5.0
Execution completed.
Error: Cannot divide by zero!Wdrażanie krok po kroku
- Sprawdzanie poprawności przesłanych formularzy użytkownika
- Zapewnienie, że żądania sieciowe nie ulegają awarii po przekroczeniu limitu czasu
- Bezpieczne zamykanie połączeń z bazą danych w bloku final
Często zadawane pytania
Co to jest słowo kluczowe „podbić”?
Słowo kluczowe raise służy do celowego zgłaszania wyjątku. Możesz zdefiniować, jaki rodzaj błędu ma zostać zgłoszony i jaki tekst ma zostać wydrukowany użytkownikowi.
Powiązane tematy
Opanuj funkcje Pythona. Dowiedz się, jak pisać kod wielokrotnego użytku za pomocą def, definiować argumenty, zwracać wartości i rozumieć zakres lokalnie i globalnie.
Klasy Pythona i programowanie obiektoweKompletne wprowadzenie do klas, obiektów, dziedziczenia i pojęć OOP w Pythonie. Twórz niezawodne modele danych i skaluj swoje aplikacje w Pythonie.
Polecane zasoby Pythona
Poszerzaj swoją wiedzę dzięki powiązanym interaktywnym samouczkom, ściągawkom i porównaniom kodów.
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.
Ś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.
Python kontra JavaScript: który język programowania jest najlepszy?
Kompleksowe porównanie Pythona i JavaScript. Poznaj różnice w składni, wydajność, przypadki użycia (backend vs frontend) i przykłady kodowania.