Συνάρτηση με Εξαίρεση στην Python

Οι εξαιρέσεις είναι πολύ βολικό να εκτοξεύονται, ορίζοντάς τις σε συναρτήσεις χρησιμοποιώντας συνθήκες.

Ας φτιάξουμε μια συνάρτηση get_sum, η οποία θα επιστρέφει το άθροισμα των στοιχείων μιας λίστας μόνο εάν το μήκος της λίστας είναι μικρότερο ή ίσο με 3. Σε αντίθετη περίπτωση, ας εκτοξεύεται η δική μας εξαίρεση ToBigLength:

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

Τώρα ας περάσουμε στη συνάρτηση get_sum μια λίστα και ας εμφανίσουμε το αποτέλεσμα στην κονσόλα:

pythonlst = [1, 2, 3, 4]

print(get_sum(lst)) # θα εμφανίσει 6

Επίσης, σε συναρτήσεις μπορούμε να ορίσουμε υποδοχή πολλών τύπων εξαιρέσεων. Ας δημιουργήσουμε μια ακόμη κλάση εξαιρέσεων ToSmallLength:

pythonclass ToSmallLength(Exception):
  pass

Τώρα ας ορίσουμε στη συνάρτηση μια συνθήκη: εάν το μήκος της λίστας είναι ίσο με μηδέν, τότε ας εκτοξευθεί η ToSmallLength. Εάν δεν πιαστεί καμία εξαίρεση, τότε ας επιστραφεί το άθροισμα όλων των στοιχείων της λίστας:

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

Για ευκολία, μπορούμε να τοποθετήσουμε τη λίστα, που θα περνάει ως παράμετρος στη συνάρτηση, την ίδια τη συνάρτηση και την κλήση της σε ένα μπλοκ try. Και την υποδοχή των δύο εξαιρέσεών μας να τις τοποθετήσουμε στα μπλοκ except:

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

Δημιουργήστε μια συνάρτηση, που ως παράμετρο θα δέχεται έναν αριθμό. Σε αυτήν ορίστε συνθήκες: εάν ο αριθμός είναι αρνητικός ή ίσος με μηδέν, τότε ας εκτοξευθούν οι αντίστοιχες εξαιρέσεις. Σε αντίθετη περίπτωση ας πολλαπλασιαστεί ο αριθμός με 3.

Задание 2

Ελέγξτε τη λειτουργία της συνάρτησης που δημιουργήσατε χρησιμοποιώντας την κατασκευή try-except. Κατά τη διάρκεια αυτή, αλιέψτε επίσης τις εξαιρέσεις σας.