Python Obsługa wyjątków: spróbuj, złap, w końcu i podnieś [Przykład]

Co to jest obsługa wyjątków Python?

Wyjątkiem jest błąd występujący w czasie wykonywania programu. Jednak podczas uruchamiania programu Python generuje wyjątek, który powinien zostać obsłużony, aby uniknąć awarii programu. W Python język, 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 z funkcji głównej zostanie zgłoszony wyjątek, program zostaje nagle zakończony.

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 większej kwoty niż dostępna

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

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

  • Obsługa wyjątków umożliwia oddzielenie kodu obsługującego błędy od normalnego kodu.
  • Wyjątkiem jest plik Python przedmiot co oznacza błąd.
  • Podobnie jak w przypadku komentarzy do kodu, wyjątki pomagają przypomnieć sobie, czego oczekuje program.
  • Wyjaśnia kod i zwiększa 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.
  • In Python, możesz zgłosić wyjątek w programie, korzystając z metody raise wyjątek.
  • Zgłoszenie wyjątku pomaga przerwać bieżące wykonanie kodu i przywraca oczekiwany wyjątek do czasu jego obsługi.
  • Przetwarzanie wyjątków dla komponentów, które nie mogą obsłużyć ich bezpośrednio.

Zasady wyjątków

Oto kilka podstawowych zasad Python obsługa wyjątków:

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

Python Mechanizm obsługi wyjątków

Obsługą wyjątków zajmują się następujące 5 słowa kluczowe:

  1. próbować
  2. łapać
  3. w końcu
  4. rzucać

Python Wypróbuj instrukcję

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 wystąpienia wyjątku w zestawie prób, zestaw prób wygasa, a kontrola programu jest przekazywana do odpowiedniego programu obsługi wyjątków następującego po zestawie prób.

Syntax:
try:
statement(s)

Oświadczenie catch

Bloki catch pobierają po jednym argumencie na raz i jest to typ wyjątku, który prawdopodobnie przechwyci. Argumenty te mogą obejmować konkretny typ wyjątku, który można zmieniać, aż do kategorii wyjątków typu catch-all.

Zasady bloku catch:

  • Blok catch można zdefiniować za pomocą słowa kluczowego catch
  • Parametr wyjątku catch jest zawsze ujęty w nawiasy
  • Zawsze reprezentuje typ wyjątku obsługiwany przez blok catch.
  • Kod obsługi wyjątku jest zapisany pomiędzy dwoma nawiasami klamrowymi {}.
  • Możesz umieścić wiele bloków catch w jednym bloku try.
  • Bloku catch można użyć dopiero 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 oświadczenie w Python

Wreszcie blok zawsze jest wykonywany niezależnie od tego, czy został zgłoszony wyjątek, czy nie. Słowo kluczowe final umożliwia utworzenie bloku kodu następującego po bloku try-catch.

Wreszcie klauzula jest opcjonalna. Ma na celu zdefiniowanie działań porządkowych, które powinny być wykonywane w każdych warunkach.

try:
    raise KeyboardInterrupt
finally:
    print 'welcome, world!'
Output
Welcome, world!
KeyboardInterrupt

Na koniec klauzula jest wykonywana przed instrukcją try.

Podnieś oświadczenie w Python

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

Składnia:

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

W tej składni argument jest opcjonalny i w momencie wykonania wartością argumentu wyjątku jest zawsze brak.
Przykład:
A Python wyjątek może być dowolną wartością, np. ciągiem znaków, klasą, liczbą lub obiektem. Większość z tych wyjątków zgłaszanych przez Python core to klasy z argumentem będącym instancją klasy.

Ważny Python Błędy

Typ błędu Opis
Błąd arytmetyczny ArithmeticError działa jako klasa bazowa dla wszystkich wyjątków arytmetycznych. Jest wywoływany w przypadku błędów w operacjach arytmetycznych.
Błąd importu ImportError pojawia się, gdy próbujesz zaimportować moduł, który nie jest obecny. Ten rodzaj wyjątku ma miejsce, jeśli popełniłeś błąd w nazwie modułu lub w przypadku modułu, którego nie ma w standardowej ścieżce.
Błąd indeksu IndexErroris zgłaszany podczas próby odniesienia się do sekwencji, która jest poza zakresem.
Błąd klucza Jeśli w słowniku nie zostanie znaleziony określony klucz, zgłaszany jest wyjątek KeyError.
NazwaBłąd Błąd NameError jest wywoływany, gdy odwołuje się do nazwy w kodzie, który nigdy nie istnieje w lokalnej lub globalnej przestrzeni nazw.
Błąd wartości Błąd wartości jest zgłaszany, gdy funkcja lub wbudowana operacja otrzyma argument, który może być poprawnego typu, ale nie ma odpowiedniej wartości.
Błąd EO Ten rodzaj błędu pojawia się, gdy jedna z wbudowanych funkcji (input() lub raw_input()) osiąga warunek EOF bez odczytywania jakichkolwiek danych.
Błąd ZeroDivison Ten typ błędu pojawia się podczas dzielenia lub modułu przez zero dla wszystkich typów liczbowych.
Błąd IO- Ten rodzaj błędu pojawia się, gdy operacja wejścia/wyjścia się nie powiedzie.
błąd składni SyntaxErrors zgłaszane w przypadku wystąpienia błędu Python składnia.
Błąd identyfikacyjny Ten błąd pojawia się, gdy wcięcie nie jest poprawnie zdefiniowane

Inne ważne Python wyjątki

Wyjątek Opis
Wyjątek arytmetyczny Błąd arytmetyczny, taki jak dzielenie przez zero.
Wyjątek ArraylndexOutOfBounds Indeks tablicy jest poza zakresem.
Wyjątek ArrayStore Przypisanie pomaga w dotarciu do elementu tablicy niezgodnego typu.
Wyjątek ClassCast Nieprawidłowa obsada
Wyjątek MlegalMonitorStateException Nielegalna operacja monitora, np. oczekiwanie na odblokowany wątek.
Wyjątek MlegalState Środowisko lub aplikacja jest w złym stanie.
Klasa nie znaleziono wyjątku Nie znaleziono klasy.
CloneNotSupportedException Próba sklonowania obiektu, który nie implementuje interfejsu Cloneable.
Wyjątek dotyczący nielegalnego dostępu Odmowa dostępu do zajęć.
Wyjątek wystąpienia Występuje podczas próby utworzenia obiektu interfejsu lub klasy abstrakcyjnej.
CloneNotSupportedException Próba sklonowania obiektu, który nie implementuje interfejsu.

Błąd a wyjątki

Błąd wyjątki
Wszystkie błędy w Python są typem niesprawdzonym. Wyjątki obejmują zarówno typy zaznaczone, jak i niesprawdzone.
W czasie wykonywania występują błędy nieznane kompilatorowi. Wyjątki można odzyskać, obsługując je za pomocą bloków try-catch.
Błędy są najczęściej spowodowane przez środowisko, w którym działa aplikacja. Sama aplikacja powoduje wyjątki.
Przykłady:
Błąd brak pamięci
Przykłady:
Sprawdzone wyjątki, wyjątek SQL, wyjątek NullPointerException itp.

Podsumowanie

  • Wyjątek stanowi 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.
  • Typowymi przykładami wyjątków są: 1) dzielenie przez zero, 2) dostęp do pliku, który nie istnieje, 3) dodanie dwóch niezgodnych typów.
  • Wyjątkiem jest plik Python obiekt, 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 catch pobierają po jednym argumencie na raz i jest to typ wyjątku, który prawdopodobnie przechwyci.
  • Instrukcja raise określa argument, który inicjuje obiekt wyjątku.
  • Wreszcie blok zawsze jest wykonywany niezależnie od tego, czy został zgłoszony wyjątek, czy nie.