Wyjątek Pythona

Wyjątek Pythona

Wyjątkiem jest zdarzenie, które powstaje podczas wykonywania programu w celu zakończenia lub zmiany normalnego przepływu programu. Na przykład błąd podnosi wyjątek. Podobnie jak inne języki programowania, Python zawiera wiele wbudowanych wyjątków. Te wyjątki są podnoszone, jeśli pojawi się błąd, gdy program jest wykonywany. Rodzaj błędu określa, który wyjątek ma zostać podniesiony. Gdy wystąpi wyjątek, tłumacz Python sprawdza, czy wyjątek jest obsługiwany; Jeśli nie, kończy to program. W tym artykule wyjaśniono wyjątki w Pythonie za pomocą różnych przykładów.

Wbudowane wyjątki Pythona

Jak omówiono wcześniej, Python ma wiele wbudowanych wyjątków, które są podniesione, gdy występuje błąd podczas wykonywania programu. Każdy wyjątek pochodzi z klasy bazowej „wyjątku”. Poniżej zawierają wbudowane wyjątki Pythona, a także krótki opis każdego typu wyjątku:

Wyjątek Opis
Wyjątek Każdy wyjątek pochodzi z tej klasy.
ImporterRor Ten wyjątek jest podniesiony, gdy określony moduł jest importowany i nie zostanie znaleziony.
Eoferror To jest wyjątek na koniec pliku. Ten wyjątek występuje po osiągnięciu końca pliku.
ZerodivisionError Ten wyjątek jest podniesiony, gdy liczba jest podzielona przez zero.
Keyerror Ten wyjątek jest podniesiony, jeśli określony lub używany jest określony klucz, który nie jest zdefiniowany w słowniku.
Indekserorror Ten wyjątek jest podniesiony, gdy podjęto dostęp do indeksu sekwencji, który nie jest w zakresie.
FloatingPointerror Ten wyjątek jest podniesiony, gdy operacja zmiennoprzecinka jest nie powiodła.

To są niektóre z wbudowanych wyjątków w Pythonie. Odwiedź oficjalną dokumentację, aby uzyskać więcej informacji na temat korzystania z wbudowanych wyjątków w Python, znajdującej się pod adresem https: //.pyton.org/3/biblioteka/wyjątki.html.

Wykorzystanie wyjątków w Pythonie

Wyjątki w Pythonie są obsługiwane za pomocą instrukcji TRY. Kawałek kodu, który może rzucić lub podnieść wyjątek, jest zaimplementowany w bloku próbnym. Obok bloku próba, oprócz bloku jest zaimplementowany, aby obsłużyć wyjątek. W bloku z wyjątkiem wyjątku łapiemy wyjątek i decydujemy, jaką operację należy wykonać, gdy napotkamy ten konkretny wyjątek. Składnia pisania próby i z wyjątkiem bloków jest następująca:

próbować:
Wykonaj operację lub funkcję
z wyjątkiem:
funkcjonalność do obsługi wyjątku

Teraz zaimplementujemy prosty kod w naszym skrypcie Python za pomocą trybu i oprócz bloków.

Tutaj wydrukujemy zmienną „Nazwa”, która nie jest zdefiniowana. Podnosi to wyjątek w bloku oprócz.

#Wymaganie bloku prób
próbować:
Nazwa wydruku)
#Wprowadź blok z wyjątkiem
z wyjątkiem:
wydruku („Wystąpił wyjątek”)

Wyjście

Jeśli nie wystąpi wyjątek, wówczas wykonywany jest tylko blok próbny. W bloku z wyjątkiem bloku jest wydrukowane, że wystąpił wyjątek.

Spójrzmy na inny przykład, w którym definiujemy zmienną nazwiska:

#definiowanie zmiennej nazwy
name = "Mark"
#Wymaganie bloku prób
próbować:
Nazwa wydruku)
#Wprowadź blok z wyjątkiem
z wyjątkiem:
wydruku („Wystąpił wyjątek”)

Wyjście

W powyższym przykładzie blok próba jest wykonywana, a blok z wyjątkiem jest pomijany, ponieważ program nie podnosi żadnych wyjątków. Możemy zdefiniować tak wiele z wyjątkiem bloków w naszym programie, ile chcemy. Każdy oprócz bloku obsługuje określony rodzaj wyjątku.

#Wymaganie bloku prób
próbować:
Nazwa wydruku)
#Wymaganie bloku oprócz złapania błędu nazwy
Z wyjątkiem NameError:
druk („zmienna nie jest zdefiniowana”)
#Wprowadź blok z wyjątkiem
z wyjątkiem:
Drukuj („Coś poszło nie tak inne niż błąd nazwy”)

Wyjście

W Python wyjątek jest klasą podstawową dla wszystkich wyjątków. Zamiast pisać nazwę konkretnego wyjątku w bloku, możemy po prostu napisać „wyjątek” i złapać każdy rodzaj wyjątku w ten sposób.

#Wymaganie bloku prób
próbować:
Nazwa wydruku)
#Wymaganie bloku oprócz złapania błędu
z wyjątkiem wyjątku jako Exp:
Drukuj (exp.__klasa__)
#Wprowadź blok z wyjątkiem
z wyjątkiem:
Drukuj („Coś poszło nie tak inne niż błąd nazwy”)

Wyjście

Exp.__class__ Zwraca nazwę klasy wyjątku.

Podobnie spójrzmy na przykład klasy „ZerodivisionError”.

#Wymaganie bloku prób
próbować:
x = 1/0
Drukuj (x)
#Wymaganie bloku oprócz złapania błędu
z wyjątkiem wyjątku jako Exp:
Drukuj (exp.__klasa__)
#Wprowadź blok z wyjątkiem
z wyjątkiem:
Drukuj („Coś poszło nie tak inne niż błąd nazwy”)

Wyjście

Ten blok

Oczywiście blok jest używany z blokami wyjątków i wyjątków. Else Block definiuje kawałek kodu wykonywany, jeśli blok próba ulega pomyślnie i nie wystąpi błąd. Czasami może być konieczne wydrukowanie wiadomości lub wykonanie funkcji, gdy blok próba został pomyślnie wykonany. Z tego powodu możemy zaimplementować blok z próbą z wyjątkiem bloków.

W tym przykładzie zaimplementujemy blok else w naszym skrypcie Python.

#Wymaganie bloku prób
próbować:
x = 1/2
Drukuj (x)
#Wymaganie bloku oprócz złapania błędu
z wyjątkiem wyjątku jako Exp:
Drukuj (exp.__klasa__)
#Wymaganie bloku innego
w przeciwnym razie:
Drukuj („Wszystko poszło dobrze”)

Wyjście

Blok else jest wykonywany po pomyślnym wykonaniu bloku try.

Spójrzmy teraz na kolejny przykład za pomocą bloku enety.

#Wymaganie bloku prób
próbować:
name = "Mark"
#Wymaganie bloku oprócz złapania błędu
z wyjątkiem wyjątku jako Exp:
Drukuj (exp.__klasa__)
#Wymaganie bloku innego
w przeciwnym razie:
Drukuj („nazwa to:”, nazwa)

Wyjście

W powyższym przykładzie zmienna nazwy jest zdefiniowana w bloku try.

W końcu blok

Wreszcie Block zawiera kawałek kodu, który należy wykonać niezależnie od tego, czy blok próba podnosi wyjątek. Wreszcie blok jest opcjonalny i jest zadeklarowany za pomocą bloku próbnego. Na przykład, jeśli otworzyliśmy plik tekstowy, aby odczytać blok próba i podnosi on błąd lub wyjątek, lepiej dołączyć plik w bloku wreszcie, nawet jeśli wystąpi błąd. Wdrożyćmy w końcu blok w naszym skrypcie Python.

#Wymaganie bloku prób
próbować:
Drukuj (my_dict)
#Wymaganie bloku oprócz złapania błędu
z wyjątkiem wyjątku jako Exp:
Drukuj (exp.__klasa__)
#Wprowadź wreszcie blok
Wreszcie:
druk („to jest wreszcie blok”)
druk („blok wreszcie jest wykonywany”)

Wyjście

W wyjściu można zauważyć, że blok próba podnosi wyjątek. Jednak w końcu blok jest wykonywany na końcu.

Teraz otwórzmy plik tekstowy w bloku try, który podnosi wyjątek, podczas gdy plik zamknięty w bloku wreszcie.

#Wymaganie bloku prób
próbować:
FileOBJ = Open („MESTUDENT.xml ",„ r ”)
FileOBJ.szukaj (-2)
Drukuj (FileOBJ.readLines ())
#Wprowadź blok z wyjątkiem
z wyjątkiem wyjątku jako Exp:
Drukuj (exp.__klasa__)
#Wprowadź wreszcie blok
Wreszcie:
FileOBJ.zamknąć()
Drukuj („Plik jest pomyślnie zamknięty”)

Wyjście

Jak widać, niezależnie od błędu wartości, plik został pomyślnie zamknięty w bloku wreszcie.

Podnieś wyjątek

Chociaż wyjątki są zgłaszane automatycznie, gdy wystąpi błąd, w Python, możesz również ręcznie podnieść wyjątki. wznosić Słowo kluczowe służy do podniesienia lub wyrzucenia wyjątku.

Teraz podniesiemy niektóre wyjątki za pomocą słowa kluczowego Raise. W poniższym przykładzie warunek IF jest wdrażany w celu sprawdzenia liczb nie wymagających. Jeśli istnieją jakiekolwiek liczby nieujemne, wówczas wykorzystywanie „liczby nie wymagające są dozwolone”.

#DECLARZUJĄ DWA zmienne liczbowe
NUM1 = 20
NUM2 = -10
if (num1<0) | (num2<0)):
Podnieś wyjątek („liczby nie wymagające są niedozwolone”)
w przeciwnym razie:
Drukuj (NUM1+NUM2)

Wyjście

Wniosek

Wyjątek występuje w odpowiedzi na błąd w czasie wykonywania. W Python możemy poradzić sobie z wyjątkami, używając trybu i oprócz bloków. W tym artykule wyjaśniono, jak używać wyjątków w Pythonie za pomocą różnych przykładów.