Powrót do: Podstawy Testów Automatycznych w Selenium i Python cz. 5 – Profesjonalna konfiguracja projektu
Łapanie konkretnych wyjątków
Wiemy jak łapać wszystkie wyjątki a teraz czas na bardziej sprecyzowane działania.
Gdy w naszym kodzie wrócimy do: b = 0
, uruchomimy ten kod w konsoli to zobaczymy wyjątek o nazwie ZeroDivisionError. Możemy tak przekształcić nasz kod, aby tylko ten konkretny wyjątek był wyłapywany:
a = 1 b = 0 try: result = a / b print(result) except ZeroDivisionError as zero_error: print(zero_error) print("Error! ZeroDivisionError!")
Świetnie! Zabezpieczyliśmy się przed zerowym mianownikiem.
Dodatkowo pojawiło się wyrażenie as
. Co ono oznacza? Musimy spojrzeć na całą linię – except ZeroDivisionError as zero_error:
oznacza, że przechwycony wyjątek zostanie przypisany do zmiennej zero_error
, która to już może być bezpiecznie wypisana na ekranie a program będzie dalej kontynuował operacje. Śmiało przetestuj to poprzez wykonanie powyższego kodu.
A co jeśli do b
przypiszemy wartość nieliczbową? Na przykład b = "text"
? Wtedy na konsoli ukaże nam się:
Traceback (most recent call last): File "C:/Users/jaktestowac/.PyCharmCE2018.2/config/scratches/exception.py", line 5, in <module> result = a / b TypeError: unsupported operand type(s) for /: 'int' and 'str'
W informacji na konsoli widzimy kolejny typ wyjątku – TypeError. Czy możemy się też przed nim zabezpieczyć? Ale przy jednoczesnym zachowaniu zabezpieczenia przed ZeroDivisionError?
Jasne! Omówimy to w kolejnych lekcjach ale najpierw czeka na Ciebie zadanie.