Συνάρτηση με Εξαίρεση στην Python
Οι εξαιρέσεις είναι πολύ βολικό να εκτοξεύονται, ορίζοντάς τις σε συναρτήσεις χρησιμοποιώντας συνθήκες.
Ας φτιάξουμε μια συνάρτηση get_sum,
η οποία θα επιστρέφει το άθροισμα των στοιχείων
μιας λίστας μόνο εάν το μήκος της λίστας είναι μικρότερο
ή ίσο με 3. Σε αντίθετη περίπτωση,
ας εκτοξεύεται η δική μας εξαίρεση ToBigLength:
def get_sum(lst):
if len(lst) <= 3:
return sum(lst)
else:
raise ToBigLength
Τώρα ας περάσουμε στη συνάρτηση get_sum
μια λίστα και ας εμφανίσουμε το αποτέλεσμα στην κονσόλα:
lst = [1, 2, 3, 4]
print(get_sum(lst)) # θα εμφανίσει 6
Επίσης, σε συναρτήσεις μπορούμε να ορίσουμε υποδοχή
πολλών τύπων εξαιρέσεων. Ας δημιουργήσουμε
μια ακόμη κλάση εξαιρέσεων ToSmallLength:
class ToSmallLength(Exception):
pass
Τώρα ας ορίσουμε στη συνάρτηση μια συνθήκη: εάν
το μήκος της λίστας είναι ίσο με μηδέν, τότε ας εκτοξευθεί
η ToSmallLength. Εάν δεν πιαστεί καμία
εξαίρεση, τότε ας επιστραφεί
το άθροισμα όλων των στοιχείων της λίστας:
def get_sum(lst):
if len(lst) > 3:
raise ToBigLength
if len(lst) == 0:
raise ToSmallLength
else:
return sum(lst)
Για ευκολία, μπορούμε να τοποθετήσουμε τη λίστα, που
θα περνάει ως παράμετρος στη συνάρτηση,
την ίδια τη συνάρτηση και την κλήση της σε ένα μπλοκ try.
Και την υποδοχή των δύο εξαιρέσεών μας να τις τοποθετήσουμε
στα μπλοκ except:
try:
lst = [1, 2, 3]
res = get_sum(lst)
print(res)
except ToBigLength:
print('error 1')
except ToSmallLength:
print('error 2')
Δημιουργήστε μια συνάρτηση, που ως παράμετρο θα
δέχεται έναν αριθμό. Σε αυτήν ορίστε συνθήκες:
εάν ο αριθμός είναι αρνητικός ή ίσος με μηδέν, τότε
ας εκτοξευθούν οι αντίστοιχες εξαιρέσεις.
Σε αντίθετη περίπτωση ας πολλαπλασιαστεί ο αριθμός
με 3.
Ελέγξτε τη λειτουργία της συνάρτησης που δημιουργήσατε
χρησιμοποιώντας την κατασκευή try-except. Κατά
τη διάρκεια αυτή, αλιέψτε επίσης τις εξαιρέσεις σας.