Menu
Coddy logo textTech

Esempio di gestione delle eccezioni - 2

Lezione 14 di 16 del corso Gestione delle eccezioni in Python di Coddy.

Esempio 1:

Prendiamo come esempio le transazioni bancarie. Abbiamo più eccezioni personalizzate.

1) Supponiamo che il conto bancario dell'utente debba contenere almeno 100$. Durante una transazione, se il saldo residuo scende sotto i 100$, deve essere generata un'eccezione.

2) L'utente può effettuare al massimo 3 tentativi. Se prova a effettuare un quarto tentativo, deve essere generata un'eccezione e il conto bancario deve essere congelato.

Risolverò il primo caso; il secondo è la tua sfida.

#step-1: Crea una classe Exception definita dall'utente
class BalanceException(Exception):
	pass
#step-2: solleva Exception per una condizione specifica
balance = 1000  
try:
	amt = float(input("Enter the amount to withdraw:"))
	#controlla l'importo rimanente dopo la transazione
	temp = balance - amt
	if temp < 100:
		raise BalanceException("Insufficient balance")
except Exception as obj:
	print(obj)

Nello snippet qui sopra, abbiamo generato un'eccezione personalizzata se il saldo scende sotto i 100$.

Vogliamo effettuare la transazione se non si è verificata alcuna eccezione. Possiamo scrivere un blocco else.

else:
	balance = balance - amt

Che si verifichi o meno un'eccezione, vogliamo stampare il saldo residuo. Possiamo usare un blocco finally.

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

 

Ora aggiungi un'altra eccezione per il secondo caso e aggiorna il codice fornito.

challenge icon

Sfida

Medio

Devi aggiungere il codice per il secondo caso.

Provalo tu

balance = 10000   #Imagina que se obtiene de la base de datos.
class BalanceException(Exception):
    pass

def transaction():
    global balance
    try:
        amt = float(input())
        #comprueba el saldo restante después de la transacción
        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)

Tutte le lezioni di Gestione delle eccezioni in Python

Esercitati da solo: Compilatore Python online