1. Què són les Excepcions?

Les excepcions són errors que es produeixen durant l'execució d'un programa. Quan es produeix una excepció, el flux normal del programa es veu interromput i el control es transfereix a un bloc de codi especial per gestionar l'error. Les excepcions són útils per gestionar errors de manera controlada i evitar que el programa es bloquegi inesperadament.

Conceptes Clau:

  • Excepció: Un esdeveniment que interromp el flux normal del programa.
  • Gestió d'Excepcions: El procés de respondre a les excepcions per evitar que el programa es bloquegi.

  1. Tipus d'Excepcions en Python

Python té diversos tipus d'excepcions predefinides. A continuació es mostren algunes de les més comunes:

Excepció Descripció
ZeroDivisionError Es produeix quan es divideix un nombre per zero.
IndexError Es produeix quan es tracta d'accedir a un índex que està fora del rang d'una llista.
KeyError Es produeix quan es tracta d'accedir a una clau que no existeix en un diccionari.
ValueError Es produeix quan una funció rep un argument amb el tipus correcte però amb un valor inapropiat.
TypeError Es produeix quan una operació o funció es realitza en un objecte de tipus inapropiat.
FileNotFoundError Es produeix quan es tracta d'obrir un fitxer que no existeix.

  1. Sintaxi Bàsica per Gestionar Excepcions

La gestió d'excepcions en Python es fa mitjançant les instruccions try, except, else i finally.

Estructura Bàsica:

try:
    # Bloc de codi on pot ocórrer una excepció
    pass
except SomeException as e:
    # Bloc de codi per gestionar l'excepció
    pass
else:
    # Bloc de codi que s'executa si no es produeix cap excepció
    pass
finally:
    # Bloc de codi que s'executa sempre, independentment de si es produeix una excepció o no
    pass

Exemple Pràctic:

try:
    resultat = 10 / 0
except ZeroDivisionError as e:
    print(f"Error: {e}")
else:
    print("La divisió s'ha realitzat correctament.")
finally:
    print("Aquest bloc s'executa sempre.")

Sortida:

Error: division by zero
Aquest bloc s'executa sempre.

  1. Exemples Pràctics

Exemple 1: Gestió de ValueError

try:
    num = int(input("Introdueix un nombre: "))
except ValueError as e:
    print(f"Error: {e}. Si us plau, introdueix un nombre vàlid.")
else:
    print(f"Has introduït el nombre {num}.")
finally:
    print("Final de l'operació.")

Exemple 2: Gestió de FileNotFoundError

try:
    with open('fitxer_inexistent.txt', 'r') as fitxer:
        contingut = fitxer.read()
except FileNotFoundError as e:
    print(f"Error: {e}. El fitxer no existeix.")
else:
    print("El fitxer s'ha llegit correctament.")
finally:
    print("Final de l'operació de fitxer.")

  1. Exercicis Pràctics

Exercici 1: Gestió de IndexError

Escriu un programa que intenti accedir a un índex fora del rang d'una llista i gestioni l'excepció IndexError.

llista = [1, 2, 3, 4, 5]

try:
    element = llista[10]
except IndexError as e:
    print(f"Error: {e}. L'índex està fora del rang.")
else:
    print(f"L'element a l'índex 10 és {element}.")
finally:
    print("Final de l'operació de llista.")

Exercici 2: Gestió de KeyError

Escriu un programa que intenti accedir a una clau inexistent en un diccionari i gestioni l'excepció KeyError.

diccionari = {'nom': 'Joan', 'edat': 30}

try:
    valor = diccionari['adreça']
except KeyError as e:
    print(f"Error: {e}. La clau no existeix en el diccionari.")
else:
    print(f"La clau 'adreça' té el valor {valor}.")
finally:
    print("Final de l'operació de diccionari.")

  1. Resum

En aquesta secció, hem après què són les excepcions i com gestionar-les en Python. Hem vist diversos tipus d'excepcions comunes i hem après la sintaxi bàsica per gestionar-les utilitzant les instruccions try, except, else i finally. També hem treballat amb exemples pràctics i exercicis per reforçar els conceptes apresos.

En la següent secció, explorarem com gestionar les excepcions de manera més avançada, incloent la creació d'excepcions personalitzades.

Curs de Programació en Python

Mòdul 1: Introducció a Python

Mòdul 2: Estructures de Control

Mòdul 3: Funcions i Mòduls

Mòdul 4: Estructures de Dades

Mòdul 5: Programació Orientada a Objectes

Mòdul 6: Gestió de Fitxers

Mòdul 7: Gestió d'Errors i Excepcions

Mòdul 8: Temes Avançats

Mòdul 9: Proves i Depuració

Mòdul 10: Desenvolupament Web amb Python

Mòdul 11: Ciència de Dades amb Python

Mòdul 12: Projecte Final

© Copyright 2024. Tots els drets reservats