- 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.
- 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. |
- 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:
- 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.")
- 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.")
- 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
- Introducció a Python
- Configuració de l'Entorn de Desenvolupament
- Sintaxi de Python i Tipus de Dades Bàsics
- Variables i Constants
- Entrada i Sortida Bàsiques
Mòdul 2: Estructures de Control
Mòdul 3: Funcions i Mòduls
- Definició de Funcions
- Arguments de Funció
- Funcions Lambda
- Mòduls i Paquets
- Visió General de la Biblioteca Estàndard
Mòdul 4: Estructures de Dades
Mòdul 5: Programació Orientada a Objectes
Mòdul 6: Gestió de Fitxers
- Lectura i Escriptura de Fitxers
- Treballant amb Fitxers CSV
- Gestió de Dades JSON
- Operacions amb Fitxers i Directoris
Mòdul 7: Gestió d'Errors i Excepcions
Mòdul 8: Temes Avançats
- Decoradors
- Generadors
- Gestors de Context
- Concurrència: Fils i Processos
- Asyncio per a Programació Asíncrona
Mòdul 9: Proves i Depuració
- Introducció a les Proves
- Proves Unitàries amb unittest
- Desenvolupament Guiat per Proves
- Tècniques de Depuració
- Ús de pdb per a la Depuració
Mòdul 10: Desenvolupament Web amb Python
- Introducció al Desenvolupament Web
- Conceptes Bàsics del Framework Flask
- Construcció d'APIs REST amb Flask
- Introducció a Django
- Construcció d'Aplicacions Web amb Django
Mòdul 11: Ciència de Dades amb Python
- Introducció a la Ciència de Dades
- NumPy per al Càlcul Numèric
- Pandas per a la Manipulació de Dades
- Matplotlib per a la Visualització de Dades
- Introducció al Machine Learning amb scikit-learn