Obsługa wyjątków w Pythonie: Try, Catch, Final

Spisie treści:

Anonim

Co to jest wyjątek w Pythonie?

Wyjątkiem jest błąd, który występuje w czasie wykonywania programu. Jednak podczas uruchamiania programu Python generuje wyjątek, który należy obsłużyć, aby uniknąć awarii programu. W języku Python wyjątki są wyzwalane automatycznie w przypadku błędów lub mogą być wyzwalane i przechwytywane przez Twój kod.

Wyjątek wskazuje, że chociaż zdarzenie może wystąpić, tego typu zdarzenie zdarza się rzadko. Gdy metoda nie jest w stanie obsłużyć wyjątku, jest zgłaszana do funkcji wywołującej. Ostatecznie, gdy wyjątek jest wyrzucany z funkcji głównej, program jest nagle przerywany.

Z tego wyjątkowego samouczka obsługi Pythona dowiesz się:

  • Co to jest wyjątek w Pythonie?
  • Typowe przykłady wyjątków
  • Dlaczego warto używać wyjątków?
  • Zasady wyjątków
  • Wyjątkowy mechanizm obsługi
    • Instrukcja Try
    • Instrukcja catch
    • Oświadczenie Raise
  • Ważne błędy w języku Python
  • Inne ważne wyjątki w Pythonie
  • Błąd a wyjątki

Typowe przykłady wyjątków:

  • Dzielenie przez zero
  • Dostęp do pliku, który nie istnieje.
  • Dodanie dwóch niezgodnych typów
  • Próba uzyskania dostępu do nieistniejącego indeksu sekwencji
  • Usuwanie tabeli z odłączonego serwera bazy danych.
  • Wypłata z bankomatu na kwotę większą niż dostępna

Dlaczego warto używać wyjątków?

Oto powody używania wyjątków w Pythonie:

  • Obsługa wyjątków umożliwia oddzielenie kodu obsługi błędów od normalnego kodu.
  • Wyjątkiem jest obiekt Pythona, który reprezentuje błąd.
  • Podobnie jak w przypadku komentarzy do kodu, wyjątki pomagają przypomnieć sobie, czego oczekuje program.
  • Wyjaśnia kod i poprawia czytelność.
  • Pozwala stymulować konsekwencje, ponieważ obsługa błędów odbywa się w jednym miejscu i w jeden sposób.
  • Wyjątkiem jest wygodna metoda obsługi komunikatów o błędach.
  • W Pythonie można zgłosić wyjątek w programie za pomocą metody podnieś wyjątek.
  • Podniesienie wyjątku pomaga przerwać wykonywanie bieżącego kodu i zwraca wyjątek z powrotem do oczekiwanego, dopóki nie zostanie obsłużony.
  • Przetwarzanie wyjątków dla składników, które nie obsługują ich bezpośrednio.

Zasady wyjątków

Oto kilka podstawowych zasad obsługi wyjątków w Pythonie:

  • Wyjątki muszą być obiektami klas
  • W przypadku wyjątków klas można użyć instrukcji try z klauzulą ​​except, która wspomina o określonej klasie.
  • Nawet jeśli instrukcja lub wyrażenie jest poprawne składniowo, może wyświetlić błąd podczas próby wykonania go.
  • Błędy znalezione podczas wykonywania nazywane są wyjątkami i nie są bezwarunkowo krytyczne.

Wyjątkowy mechanizm obsługi

Obsługą wyjątków zarządza 5 następujących słów kluczowych:

  1. próbować
  2. złapać
  3. Wreszcie
  4. rzucać

Instrukcja Try

Instrukcja try zawiera słowo kluczowe try, po którym następuje dwukropek (:) i zestaw kodu, w którym mogą wystąpić wyjątki. Zawiera jedną lub więcej klauzul.

Jeśli podczas wykonywania instrukcji try nie wystąpiły żadne wyjątki, interpreter ignoruje procedury obsługi wyjątków dla tej konkretnej instrukcji try.

W przypadku, gdy w zestawie try wystąpi jakikolwiek wyjątek, pakiet try wygasa, a kontrola programu jest przenoszona do pasującego programu obsługi z wyjątkiem następującego po pakiecie try.

Syntax:try:statement(s)

Instrukcja catch

Bloki przechwytywania przyjmują jeden argument na raz, co jest typem wyjątku, który prawdopodobnie przechwyci. Argumenty te mogą wahać się od określonego typu wyjątku, który można zmienić, do kategorii wyjątków typu catch-all.

Zasady dotyczące bloku catch:

  • Możesz zdefiniować blok catch, używając słowa kluczowego catch
  • Parametr Catch Exception jest zawsze ujęty w nawiasach
  • Zawsze reprezentuje typ wyjątku, który obsługuje uchwyty bloków catch.
  • Kod obsługi wyjątków jest zapisywany między dwoma nawiasami klamrowymi {}.
  • W jednym bloku try można umieścić wiele bloków catch.
  • Możesz użyć bloku catch tylko po bloku try.
  • Cały blok catch powinien być uporządkowany od podklasy do wyjątku nadklasy.

Przykład:

try}catch (ArrayIndexOutOfBoundsException e) {System.err.printin("Caught first " + e.getMessage()); } catch (IOException e) {System.err.printin("Caught second " + e.getMessage());}

Wreszcie Block

Ostatecznie blok jest zawsze wykonywany niezależnie od tego, czy wyjątek został zgłoszony, czy nie. Ostatnie słowo kluczowe umożliwia utworzenie bloku kodu, który następuje po bloku try-catch.

Wreszcie klauzula jest opcjonalna. Jego celem jest zdefiniowanie działań czyszczących, które powinny być wykonywane w każdych warunkach.

try:raise KeyboardInterruptfinally:print 'welcome, world!'OutputWelcome, world!KeyboardInterrupt

Na koniec klauzula jest wykonywana przed instrukcją try.

Oświadczenie Raise

Instrukcja raise określa argument, który inicjuje obiekt wyjątku. W tym przypadku przecinek następuje po nazwie wyjątku i argumentu lub krotce argumentu, który następuje po przecinku.

Składnia:

raise [Exception [, args [, traceback]]]

W tej składni argument jest opcjonalny, aw momencie wykonywania wartość argumentu wyjątku zawsze wynosi brak.

Przykład:

Wyjątkiem Pythona może być dowolna wartość, taka jak łańcuch, klasa, liczba lub obiekt. Większość z tych wyjątków, które są zgłaszane przez rdzeń Pythona, to klasy z argumentem będącym instancją klasy.

Ważne błędy w języku Python

Typ błędu Opis
ArithmeticError ArithmeticError działa jako klasa bazowa dla wszystkich wyjątków arytmetycznych. Jest podnoszony w przypadku błędów w operacjach arytmetycznych.
ImportError ImportError jest wywoływany, gdy próbujesz zaimportować moduł, który nie jest obecny. Ten rodzaj wyjątku występuje, jeśli popełnisz błąd podczas wpisywania nazwy modułu lub modułu, którego nie ma w standardowej ścieżce.
IndexError Błąd IndexError jest wywoływany, gdy próbujesz odwołać się do sekwencji, która jest poza zakresem.
KeyError Gdy określony klucz nie zostanie znaleziony w słowniku, zgłaszany jest wyjątek KeyError.
NameError NameError jest generowany, gdy odwołuje się do nazwy w kodzie, który nigdy nie istnieje w lokalnej lub globalnej przestrzeni nazw.
ValueError Błąd wartości jest zgłaszany, gdy funkcja lub operacja wbudowana otrzymuje argument, który może być poprawnego typu, ale nie ma odpowiedniej wartości.
EOFerror Ten rodzaj błędu pojawia się, gdy jedna z funkcji wbudowanych (input () lub raw_input ()) osiąga stan EOF bez odczytu danych.
ZeroDivisonError Ten typ błędu jest zgłaszany, gdy dzielenie lub moduł przez zero ma miejsce dla wszystkich typów liczbowych.
IOError- Ten rodzaj błędu jest zgłaszany, gdy operacja wejścia / wyjścia nie powiedzie się.
błąd składni SyntaxErrors zgłaszane, gdy wystąpi błąd w składni Pythona.
IndentationError Ten błąd jest zgłaszany, gdy wcięcie nie jest poprawnie zdefiniowane

Inne ważne wyjątki w Pythonie

Wyjątek Opis
ArithmeticException Błąd arytmetyczny, taki jak dzielenie przez zero.
ArraylndexOutOfBoundsException Indeks tablicy jest poza zakresem.
ArrayStoreException Przypisanie pomaga w elemencie tablicy o niezgodnym typie.
ClassCastException Nieprawidłowa obsada
MlegalMonitorStateException Niedozwolona operacja monitora, taka jak czekanie na odblokowany wątek.
MlegalStateException Środowisko lub aplikacja jest w złym stanie.
Klasa nie znaleziono wyjątku Nie znaleziono klasy.
CloneNotSupportedException Podjęto próbę sklonowania obiektu, który nie implementuje interfejsu Cloneable.
Niedozwolony wyjątek AccessException Odmowa dostępu do zajęć.
InstantiationException Występuje podczas próby utworzenia obiektu interfejsu lub klasy abstrakcyjnej.
CloneNotSupportedException Spróbuj sklonować obiekt, który nie implementuje interfejsu.

Błąd a wyjątki

Błąd Wyjątki
Wszystkie błędy w Pythonie są niezaznaczone. Wyjątki obejmują zarówno zaznaczony, jak i niezaznaczony typ.
Błędy występują w czasie wykonywania, które są nieznane kompilatorowi. Wyjątki można odzyskać, obsługując je za pomocą bloków try-catch.
Błędy są najczęściej powodowane przez środowisko, w którym działa aplikacja. Sama aplikacja powoduje wyjątki.
Przykłady: OutofMemoryError Przykłady: zaznaczone wyjątki, wyjątek SQL, wyjątek NullPointerException itp.

Podsumowanie

  • Wyjątkiem jest błąd, który wystąpił podczas wykonywania programu.
  • Wyjątek wskazuje, że chociaż zdarzenie może wystąpić, tego typu zdarzenie zdarza się rzadko.
  • Typowe przykłady wyjątków to 1) dzielenie przez zero, 2) dostęp do pliku, który nie istnieje, 3) dodanie dwóch niekompatybilnych typów.
  • Wyjątkiem jest obiekt Pythona, który reprezentuje błąd.
  • Instrukcja try zawiera słowo kluczowe try, po którym następuje dwukropek (:) i zestaw kodu, w którym mogą wystąpić wyjątki. Zawiera jedną lub więcej klauzul.
  • Bloki przechwytywania przyjmują jeden argument na raz, co jest typem wyjątku, który prawdopodobnie przechwyci.
  • Instrukcja raise określa argument, który inicjuje obiekt wyjątku.
  • Na koniec blok zawsze jest wykonywany bez względu na zgłoszony wyjątek, czy nie.