Błędy w Pythonie mogą być dwojakiego rodzaju, tj. Błędy składniowe i wyjątki. Błędy to problemy w programie, z powodu których program zatrzyma wykonywanie. Z drugiej strony wyjątki są zgłaszane, gdy wystąpią pewne zdarzenia wewnętrzne, które zmieniają normalny przebieg programu.
Notatka: Aby uzyskać więcej informacji, zobacz Błędy i wyjątki w Pythonie
Niektóre z typowych błędów wyjątków to:
- IOError: jeśli nie można otworzyć pliku KeyboardInterrupt: gdy użytkownik naciśnie niepotrzebny klawisz ValueError: gdy wbudowana funkcja otrzyma błędny argument EOFError: jeśli trafiony zostanie koniec pliku bez odczytania jakichkolwiek danych ImportError: jeśli nie może znaleźć modułu
Spróbuj z wyjątkiem w Pythonie
Do obsługi tych błędów w naszym kodzie w Pythonie używana jest instrukcja Try and Apply. Blok try służy do sprawdzania kodu pod kątem błędów, tj. kod wewnątrz bloku try zostanie wykonany, gdy w programie nie będzie żadnego błędu. Natomiast kod znajdujący się w bloku wyjątkiem zostanie wykonany za każdym razem, gdy program napotka błąd w poprzednim bloku try.
Składnia:
try: # Some Code except: # Executed if error in the # try block>
Jak działa funkcja try()?
- Po pierwsze próbować wykonywana jest klauzula, tj. kod pomiędzy próbować.
- Jeśli nie ma wyjątku, to tylko próbować klauzula zostanie uruchomiona, z wyjątkiem klauzula jest skończona.
- Jeśli wystąpi jakikolwiek wyjątek, plik próbować klauzula zostanie pominięta i z wyjątkiem klauzula zostanie uruchomiona.
- Jeśli wystąpi jakikolwiek wyjątek, ale z wyjątkiem klauzula w kodzie nie obsługuje tego, jest przekazywana do zewnętrznej próbować sprawozdania. Jeśli wyjątek pozostanie nieobsługiwany, wykonanie zostanie zatrzymane.
- A próbować instrukcja może mieć więcej niż jeden z wyjątkiem klauzula
Kod 1: Bez wyjątku, więc próbować klauzula zostanie uruchomiona.
Python3
# Python code to illustrate> # working of try()> def> divide(x, y):> > try> :> > # Floor Division : Gives only Fractional Part as Answer> > result> => x> /> /> y> > print> (> 'Yeah ! Your answer is :'> , result)> > except> ZeroDivisionError:> > print> (> 'Sorry ! You are dividing by zero '> )> # Look at parameters and note the working of Program> divide(> 3> ,> 2> )> |
>
>
Przestrzeń pomocnicza: O(1)
Wyjście :
Yeah ! Your answer is : 1>
Kod 1: Jest wyjątek, więc tylko z wyjątkiem klauzula zostanie uruchomiona.
cout
Python3
# Python code to illustrate> # working of try()> def> divide(x, y):> > try> :> > # Floor Division : Gives only Fractional Part as Answer> > result> => x> /> /> y> > print> (> 'Yeah ! Your answer is :'> , result)> > except> ZeroDivisionError:> > print> (> 'Sorry ! You are dividing by zero '> )> # Look at parameters and note the working of Program> divide(> 3> ,> 0> )> |
>
string zamień całą Java
>
Wyjście :
Sorry ! You are dividing by zero>
Kod 2: Inny sposób pisania z wyjątkiem instrukcja jest pokazana poniżej i w ten sposób akceptuje tylko wyjątki, które masz przechwycić lub możesz sprawdzić, który błąd występuje.
Python3
# code> def> divide(x, y):> > try> :> > # Floor Division : Gives only Fractional Part as Answer> > result> => x> /> /> y> > print> (> 'Yeah ! Your answer is :'> , result)> > except> Exception as e:> > # By this way we can know about the type of error occurring> > print> (> 'The error is: '> ,e)> > divide(> 3> ,> 'GFG'> )> divide(> 3> ,> 0> )> |
>
>
Wyjście:
The error is: unsupported operand type(s) for //: 'int' and 'str' The error is: integer division or modulo by zero>
Inaczej klauzula
W Pythonie możesz także użyć klauzuli else w bloku try-except, który musi występować po wszystkich klauzulach else. Kod wchodzi do bloku else tylko wtedy, gdy klauzula try nie zgłasza wyjątku.
Składnia:
try: # Some Code except: # Executed if error in the # try block else: # execute if no exception>
Kod:
Python3
# Program to depict else clause with try-except> > # Function which returns a/b> def> AbyB(a , b):> > try> :> > c> => ((a> +> b)> /> /> (a> -> b))> > except> ZeroDivisionError:> > print> (> 'a/b result in 0'> )> > else> :> > print> (c)> > # Driver program to test above function> AbyB(> 2.0> ,> 3.0> )> AbyB(> 3.0> ,> 3.0> )> |
>
>
Wyjście:
-5.0 a/b result in 0>
Wreszcie słowo kluczowe w Pythonie
Na końcu Python udostępnia słowo kluczowe, które jest zawsze wykonywane po blokach try i z wyjątkiem. Ostatni blok jest zawsze wykonywany po normalnym zakończeniu bloku try lub po zakończeniu bloku try z powodu pewnych wyjątków.
Składnia:
try: # Some Code except: # Executed if error in the # try block else: # execute if no exception finally: # Some code .....(always executed)>
Kod:
Python3
subskrypcja lazurowa
# Python program to demonstrate finally> > # No exception Exception raised in try block> try> :> > k> => 5> /> /> 0> # raises divide by zero exception.> > print> (k)> > # handles zerodivision exception> except> ZeroDivisionError:> > print> (> 'Can't divide by zero'> )> > finally> :> > # this block is always executed> > # regardless of exception generation.> > print> (> 'This is always executed'> )> |
>
>
Wyjście:
Can't divide by zero This is always executed>
Powiązane artykuły:
- Pytania wyjściowe
- Obsługa wyjątków w Pythonie
- Wyjątki zdefiniowane przez użytkownika