Pythona | Błąd asercji

Pythona | Błąd asercji

Błąd asercji
Asercja to koncepcja programistyczna stosowana podczas pisania kodu, w której użytkownik deklaruje, że warunek jest prawdziwy zapewniać instrukcja przed uruchomieniem modułu. Jeśli jest taki warunek PRAWDA , formant po prostu przechodzi do następnego wiersza kodu. W razie gdyby tak było FAŁSZ program przestaje działać i wraca Błąd asercji Wyjątek.

Funkcja zapewniać instrukcja jest taka sama niezależnie od języka, w którym jest zaimplementowana, jest to koncepcja niezależna od języka, jedynie składnia różni się w zależności od języka programowania.

Składnia asercji:
zapewniać warunek, komunikat_błędu (opcjonalnie)

Przykład 1: Błąd asercji z komunikatem o błędzie.

Python3




# AssertionError with error_message.> x> => 1> y> => 0> assert> y !> => 0> ,> 'Invalid Operation'> # denominator can't be 0> print> (x> /> y)>

Wyjście :

Traceback (most recent call last): File '/home/bafc2f900d9791144fbf59f477cd4059.py', line 4, in assert y!=0, 'Invalid Operation' # denominator can't be 0 AssertionError: Invalid Operation 

Domyślna procedura obsługi wyjątków w Pythonie wydrukuje komunikat o błędzie napisany przez programistę lub po prostu obsłuży błąd bez żadnego komunikatu.
Obydwa sposoby są prawidłowe.

Obsługa wyjątku AssertionError:
Błąd asercji jest dziedziczony z klasy wyjątku, gdy ten wyjątek wystąpi i zgłosi błąd AssertionError, istnieją dwa sposoby obsługi: użytkownik obsługuje go lub domyślna procedura obsługi wyjątków.
W przykładzie 1 widzieliśmy, jak działa domyślna procedura obsługi wyjątków.
Teraz zajmiemy się obsługą tego ręcznie.

Przykład 2

Python3




# Handling it manually> try> :> > x> => 1> > y> => 0> > assert> y !> => 0> ,> 'Invalid Operation'> > print> (x> /> y)> # the errror_message provided by the user gets printed> except> AssertionError as msg:> > print> (msg)>

Wyjście :

Invalid Operation 

Praktyczne zastosowania.
Przykład 3: Testowanie programu.

Python3




# Roots of a quadratic equation> import> math> def> ShridharAcharya(a, b, c):> > try> :> > assert> a !> => 0> ,> 'Not a quadratic equation as coefficient of x ^ 2 can't be 0'> > D> => (b> *> b> -> 4> *> a> *> c)> > assert> D>> => 0> ,> 'Roots are imaginary'> > r1> => (> -> b> +> math.sqrt(D))> /> (> 2> *> a)> > r2> => (> -> b> -> math.sqrt(D))> /> (> 2> *> a)> > print> (> 'Roots of the quadratic equation are :'> , r1, '', r2)> > except> AssertionError as msg:> > print> (msg)> ShridharAcharya(> -> 1> ,> 5> ,> -> 6> )> ShridharAcharya(> 1> ,> 1> ,> 6> )> ShridharAcharya(> 2> ,> 12> ,> 18> )>

Wyjście :

Roots of the quadratic equation are : 2.0 3.0 Roots are imaginary Roots of the quadratic equation are : -3.0 -3.0 

To jest przykład pokazujący, jak ten wyjątek wstrzymuje wykonanie programu, gdy tylko warunek potwierdzenia ma wartość Fałsz.

Inne przydatne aplikacje:

  • Sprawdzanie wartości parametrów.
  • Sprawdzanie prawidłowego wejścia/typu.
  • Wykrywanie nadużyć interfejsu przez innego programistę.
  • Sprawdzanie wyniku funkcji.