Menu
Coddy logo textTech

Przykład obsługi wyjątków – 2

Lekcja 14 z 16 w kursie Obsługa wyjątków w Pythonie w Coddy.

Przykład 1:

Weźmy przykład transakcji bankowych. Mamy wiele niestandardowych wyjątków.

1) Załóżmy, że na koncie bankowym użytkownika musi znajdować się co najmniej 100$. Podczas transakcji, jeśli pozostałe saldo spadnie poniżej 100$, powinien zostać wygenerowany wyjątek.

2) Użytkownik może wykonać maksymalnie 3 próby. Jeśli podejmie czwartą próbę, powinien zostać wygenerowany wyjątek, a konto bankowe powinno zostać zamrożone.

Rozwiążę pierwsze zadanie, drugie to twoje wyzwanie.

#step-1: Utwórz klasę Exception zdefiniowaną przez użytkownika
class BalanceException(Exception):
	pass
#step-2: zgłoś Exception dla określonego warunku
balance = 1000  
try:
	amt = float(input("Enter the amount to withdraw:"))
	#sprawdź pozostałą kwotę po transakcji
	temp = balance - amt
	if temp < 100:
		raise BalanceException("Insufficient balance")
except Exception as obj:
	print(obj)

W powyższym fragmencie zgłosiliśmy niestandardowy wyjątek, jeśli saldo spadnie poniżej 100$.

Chcemy wykonać transakcję, jeśli nie wystąpił żaden wyjątek. Możemy napisać blok else.

else:
	balance = balance - amt

Niezależnie od tego, czy wystąpi wyjątek, chcemy wyświetlić pozostałe saldo. Możemy do tego użyć bloku finally.

finally:
	print("Remaining balance is:",balance)

 

Teraz dodaj kolejny wyjątek dla drugiego przypadku i zaktualizuj podany kod.

challenge icon

Wyzwanie

Średni

Musisz dodać kod dla drugiego przypadku.

Spróbuj swoich sił

balance = 10000   #Wyobraź sobie, że pobrano ją z bazy danych.
class BalanceException(Exception):
    pass

def transaction():
    global balance
    try:
        amt = float(input())
        #sprawdź kwotę pozostałą po transakcji
        temp = balance - amt
        if temp < 100:
            raise BalanceException("Insufficient balance")
    except Exception as obj:
        print(obj)
    else:
        balance = balance - amt
    finally:
        print("Remaining balance is:",balance)

Wszystkie lekcje w sekcji Obsługa wyjątków w Pythonie

Poćwicz samodzielnie: Kompilator Python online