Spróbuj z wyjątkiem stwierdzenia
Oświadczenie TRY-BELECTES wygląda mniej więcej tak:
próbować: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.pyWyjście:
0.66666666666666666To 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.pyWyjście:
Błąd: podział zeroProces 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.pyWyjś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ć: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.pyWyjście:
Jakiś inny błądProces 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!