Spróbuj z wyjątkiem stwierdzeń w Pythonie

Spróbuj z wyjątkiem stwierdzeń w Pythonie
„Pisząc kod w Python, zwłaszcza jeśli jest to nieco bardziej skomplikowane, bardziej niż prawdopodobne jest, że napotkasz błędy. Tak więc sposobem na pisanie dobrego kodu jest umiejętnie poradzenie sobie z tymi błędami. Musimy upewnić się, że możemy płynnie wbić te błędy w inną trasę. I tak, w tym celu, w Pythonie powstało oświadczenie próbne. Oświadczenie TRY-ZEWNĘCIA składa się z bloku próbnego i jednego lub więcej oprócz bloków. W tym samouczku dowiemy."

Spróbuj z wyjątkiem stwierdzenia

Oświadczenie TRY-BELECTES wygląda mniej więcej tak:

próbować:
Kod
Z wyjątkiem Nazwy wyjątków:
Kod

Mamy więc instrukcję TRY, a następnie umieszcza się tam kod; To jest główny kod, który chcesz wykonać. Następnie jest instrukcja oprócz innego zestawu kodów, ale ten kod ma radzić sobie z wyjątkiem. Python spróbuje przede wszystkim wykonać cały kod w instrukcji TRY. Gdy nie ma błędu, wszystko idzie dobrze, a instrukcja oprócz oprócz jest po prostu przekazana (pominięta). Jeśli z drugiej strony wystąpi wyjątek, Python sprawdzi, czy pasuje do nazwy wyjątku w instrukcji oprócz. Jeśli pasuje, zacznie wykonywać kod oprócz instrukcji.

Przykład 1

główny.py
próbować:
y = (2/3)
Drukuj (y)
Z wyjątkiem zerodivisionerRor jako błędu:
Drukuj („błąd: % s” % błąd)
Drukuj („To stwierdzenie jest poza klauzulą ​​TRY-BEDECTE.")

Wyjście:

0.66666666666666666

To stwierdzenie jest poza klauzulą ​​próbową.

Proces zakończony kodem wyjściowym 0

Więc tutaj mamy instrukcję wypróbowania, a następnie odrobinę kodu poza blokiem próbkowania. Ponieważ dzielimy 2 przez 3 i że daje nam prawidłowy numer, wykonuje instrukcję TRY, a następnie pomijaj instrukcję oprócz - ponieważ nie ma zerodivisionError. Gdy omija instrukcję oprócz, kontynuuje ono resztę programu i kończy się płynnie. Celem tego przykładu jest pokazanie, że instrukcja oprócz można ominąć.

Przykład nr 2

główny.py
próbować:
y = (2/0)
Drukuj (y)
Z wyjątkiem zerodivisionerRor jako błędu:
Drukuj („błąd: % s” % błąd)

Wyjście:

Błąd: podział zero

Proces zakończony kodem wyjściowym 0

W takim przypadku w bloku próbu próbujemy podzielić 2 przez 0 i przypisać wartość do y. Jak możesz, ale nie możesz, po prostu nie możesz podzielić przez 0, więc jest tu mały problem. Ponieważ chcemy być zręczni w radzeniu sobie z błędami, postanowiliśmy napisać oprócz bloku z wyjątkiem ZerodivisionError. To jest złapanie zerodivisionError lub, innymi słowy, podział zero błędu i wydrukowanie błędu. Więc co mamy? Oświadczenie z informacją, że po prostu nie możesz podzielić przez zero. Ale chodzi o to, że nasz program się nie rozstrzygnął! Zamiast tego wskazało wadę.

Przykład nr 3

główny.py
próbować:
file = "plik.tekst"
f = Open (plik, „r”)
Drukuj (f.Czytać())
Z wyjątkiem zerodivisionerRor jako błędu:
Drukuj (błąd)
Z wyjątkiem składniowegoSerror jako Serror:
Drukuj (Serror)
z wyjątkiem FillenotFounderror jako Ferror:
Drukuj (Ferror)

Wyjście:

[Errno 2] Brak takiego pliku lub katalogu: „plik.tekst'

Proces zakończony kodem wyjściowym 0

Punkt tego przykładu jest prosty - możesz napisać tyle wyjątków, ile chcesz. Jeśli uważasz, że może być FillenotFoundError, dodajesz go do listy błędów. Oznacza to, że kiedy Python próbuje wykonać blok próba, nie znajdzie pliku, więc wychodzi z instrukcji TRY i przeszukiwania przez instrukcje, aby sprawdzić, czy któryś z nich pasuje do podniesionego błędu. Od czasu ostatniego dopasowania wydrukuje Ferror lub FillenotFoundError.

Przykład nr 4

W takim przypadku przyjrzymy się przykładowi, który przyjmuje ten format:

próbować:
Zestaw kodu 1
Zestaw kodu 2
Z wyjątkiem Nazwy Exception1:
Zestaw kodu 3
Z wyjątkiem Nazwy wyjątku2:
Zestaw kodu 4
Z wyjątkiem Nazwy wyjątku3:
Zestaw kodu 5 Main.py
próbować:
file = "plik.tekst"
f = Open (plik, „r”)
Drukuj (f.Czytać())
y = (2/0)
Drukuj (y)
Z wyjątkiem zerodivisionerRor jako błędu:
Drukuj (błąd)
Z wyjątkiem składniowegoSerror jako Serror:
Drukuj (Serror)
z wyjątkiem FillenotFounderror jako Ferror:
Drukuj (Ferror)

Wyjście:

[Errno 2] Brak takiego pliku lub katalogu: „plik.tekst'

Proces zakończony kodem wyjściowym 0

W tym konkretnym przykładzie mamy dwa błędy - FillenotFoundError i ZerodivisionError. Ale zauważ, jak pierwszym błędem jest FillenotFoundError. Więc co robi Python? Zaczyna czytać kod, instrukcję próbu i napotyka FillenotFoundError, więc wychodzi z instrukcji TRY i zaczyna skanować przez różne z wyjątkiem instrukcji, i znajduje filannoterror oprócz instrukcji, a tym samym wykonuje kod w nim. Tutaj drugi błąd został pominięty i nie otrzymujemy zerodivisionError.

Przykład nr 5

główny.py
próbować:
x = '9'
Jeśli x> 6:
Drukuj (x/6)
Z wyjątkiem zerodivisionerRor jako błędu:
Drukuj (błąd)
z wyjątkiem:
Drukuj („jakiś inny błąd”)

Wyjście:

Jakiś inny błąd

Proces zakończony kodem wyjściowym 0

Tak więc w tym przykładzie istniał typeerror, ponieważ nie można użyć> między ciągiem a liczbą całkowitą. Tak więc próbuje się blok próbny, a gdy napotyka błąd typu, przechodzi prosto do „ogólnej”, z wyjątkiem klauzuli i wykonuje to. Innymi słowy, jeśli chcesz złapać błędy i nie znasz ich nazwisk, możesz zostawić część wyjątku po pustej.

Celem tego przykładu jest to, że możesz użyć instrukcji oprócz nazywania błędu, i teoretycznie powinien złapać dowolny błąd, ale nie jest to zalecane! Innymi słowy, po prostu użyć, z wyjątkiem bez nazwy wyjątku, nie jest tak naprawdę zalecane.

Wniosek

Oświadczenie o próbach jest błogosławieństwem dla wszystkich programistów, którzy używają Pythona. Oświadczenie TRY-ZEWNĘCIA składa się z dwóch lub więcej bloków. Pierwszym blokiem jest zawsze blok instrukcji TRY, który jest wypełniony kodem. Po czym możesz dodać jeden lub więcej oprócz bloków, aby złapać bardzo konkretne błędy. Zwykle musisz również przypisać nazwę do instrukcji oprócz: np. Oprócz ZerodivisionError); Jeśli jednak naprawdę nie wiesz, jakie błędy napotkasz, możesz zostawić to puste (np.: z wyjątkiem). Tak czy inaczej, najlepsi ze wszystkich programistów będą wiedzieć, że nie popełnili błędów i dlatego zwykle wykorzystali mniej oprócz bloków, ale do każdego z nich. Więc użyj mądrego instrukcji TRY-ZESTAPA. Nie zapominaj, że programowanie implikuje umiejętności.

Szczęśliwe kodowanie!