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.
