Funzione con eccezione in Python

Le eccezioni sono molto comode da lanciare, inserendole nelle funzioni tramite condizioni.

Creiamo una funzione get_sum, che restituirà la somma degli elementi di una lista solo se la lunghezza della lista è minore o uguale a 3. In caso contrario, venga lanciata la nostra eccezione ToBigLength:

pythondef get_sum(lst):
  if len(lst) <= 3:
    return sum(lst)
  else:
    raise ToBigLength

Ora passiamo alla funzione get_sum una lista e stampiamo il risultato in console:

pythonlst = [1, 2, 3, 4]

print(get_sum(lst)) # stamperà 6

Nelle funzioni è anche possibile intercettare più tipi di eccezioni. Creiamo un'altra classe di eccezioni ToSmallLength:

pythonclass ToSmallLength(Exception):
  pass

Ora scriviamo nella funzione una condizione: se la lunghezza della lista è zero, allora viene lanciata ToSmallLength. Se invece non viene intercettata nessuna eccezione, allora viene restituita la somma di tutti gli elementi della lista:

pythondef get_sum(lst):
  if len(lst) > 3:
    raise ToBigLength
  if len(lst) == 0:
    raise ToSmallLength
  else:
    return sum(lst)

Per comodità, possiamo racchiudere la lista che verrà passata come parametro alla funzione, la funzione stessa e la sua chiamata in un blocco try. E posizioniamo l'intercettazione delle nostre due eccezioni nei blocchi except:

pythontry:
  lst = [1, 2, 3]
  res = get_sum(lst)
  print(res)
except ToBigLength:
  print('error 1')
except ToSmallLength:
  print('error 2')
Задание 1

Create una funzione che accetti un numero come parametro. In essa, scrivete delle condizioni: se il numero è negativo o uguale a zero, vengano lanciate le rispettive eccezioni. in caso contrario il numero viene moltiplicato per 3.

Задание 2

Verificate il funzionamento della funzione da voi creata usando la struttura try-except. Inoltre, intercettate le vostre eccezioni.