try, except, else, finally
Obsługa wyjątków: przechwytywanie błędów bez przerywania programu.
Przykład
#Python
def to_points(text):
try:
value = int(text)
except ValueError:
print(f"'{text}' to nie liczba")
return 0
else:
return value
finally:
print("Sprawdzono:", text)
print(to_points("42"))
print(to_points("czterdzieści"))Wynikzapisany wynik, możesz go sprawdzić
Sprawdzono: 42
42
'czterdzieści' to nie liczba
Sprawdzono: czterdzieści
0
Definicja i zastosowanie
#Blok try zawiera kod, który może zgłosić wyjątek. Jeśli błąd wystąpi, Python przechodzi do pasującego bloku except, zamiast przerywać program. Możesz obsługiwać różne typy wyjątków w osobnych blokach.
Opcjonalny blok else wykonuje się tylko wtedy, gdy w try nie było błędu, a finally wykonuje się zawsze, niezależnie od wyniku. finally służy do sprzątania, na przykład zamknięcia połączenia.
Przechwytuj konkretne wyjątki, takie jak ValueError czy KeyError. Gołe except: łapie wszystko, także przerwanie programu przez użytkownika, i ukrywa prawdziwe błędy.
Składnia
#Składnia
try:
...
except TypWyjatku as error:
...
else:
...
finally:
...Więcej przykładów
#Python
scores = {"ania": 92}
for key in ["ania", "kuba"]:
try:
print(100 / scores[key])
except KeyError as error:
print("Brak ucznia:", error)
except ZeroDivisionError:
print("Dzielenie przez zero")Wynikzapisany wynik, możesz go sprawdzić
1.0869565217391304
Brak ucznia: 'kuba'
Dobre praktyki
#- Łap tylko te wyjątki, które umiesz sensownie obsłużyć. Resztę pozwól zgłosić dalej.
- Blok
trytrzymaj krótki: tylko linie, które naprawdę mogą zgłosić obsługiwany błąd.
Powiązane hasła
#Widzisz błąd albo brakuje przykładu? Napisz do nas.