Diferència entre revisions de la pàgina «Try-except a Python»

De binefa.com
Salta a la navegació Salta a la cerca
(Es crea la pàgina amb «---- = La Gestió d'Excepcions mitjançant el bloc '''''try-except''''' a Python = En l'àmbit de l'enginyeria de programari, la robustesa d'una aplicació depèn di...».)
 
 
(Hi ha 3 revisions intermèdies del mateix usuari que no es mostren)
Línia 1: Línia 1:
----
 
 
 
= La Gestió d'Excepcions mitjançant el bloc '''''try-except''''' a Python =
 
= La Gestió d'Excepcions mitjançant el bloc '''''try-except''''' a Python =
  
Línia 10: Línia 8:
  
 
1. ''''''''try'''''''': Defineix el bloc de codi on s'executa la lògica principal que és susceptible de generar una interrupció o ''runtime error''.
 
1. ''''''''try'''''''': Defineix el bloc de codi on s'executa la lògica principal que és susceptible de generar una interrupció o ''runtime error''.
 
  
 
2. ''''''''except'''''''': Actua com un controlador d'esdeveniments. Es poden definir múltiples blocs '''''except''''' per especialitzar la resposta segons la naturalesa de l'error (per exemple, errors aritmètics o de tipus de dada).
 
2. ''''''''except'''''''': Actua com un controlador d'esdeveniments. Es poden definir múltiples blocs '''''except''''' per especialitzar la resposta segons la naturalesa de l'error (per exemple, errors aritmètics o de tipus de dada).
  
 +
3. ''''''''Exception'''''''': Representa la classe base de la jerarquia d'errors en Python. Capturar '''''Exception''''' permet gestionar qualsevol anomalia no especificada prèviament.
  
3. ''''''''Exception'''''''': Representa la classe base de la jerarquia d'errors en Python. Capturar '''''Exception''''' permet gestionar qualsevol anomalia no especificada prèviament.
 
 
4. ''''''''finally'''''''': Garanteix l'execució d'un segment de codi independentment de si s'ha produït una excepció o no, essent crític per a l'alliberament de recursos.
 
4. ''''''''finally'''''''': Garanteix l'execució d'un segment de codi independentment de si s'ha produït una excepció o no, essent crític per a l'alliberament de recursos.
  
Línia 23: Línia 20:
  
  
  try:
+
  '''try''':
 
     # Intent d'execució d'operacions crítiques
 
     # Intent d'execució d'operacions crítiques
 
     # La funció input() retorna una cadena que ha de ser convertida a enter  
 
     # La funció input() retorna una cadena que ha de ser convertida a enter  
Línia 32: Línia 29:
 
     print(f"El resultat és {resultat}")
 
     print(f"El resultat és {resultat}")
 
   
 
   
  except ZeroDivisionError:
+
  '''except ZeroDivisionError''':
 
     # Gestió específica per a la indeterminació matemàtica de la divisió per zero
 
     # Gestió específica per a la indeterminació matemàtica de la divisió per zero
 
     print("Error: No es pot dividir per zero!")
 
     print("Error: No es pot dividir per zero!")
 
   
 
   
  except ValueError:
+
  '''except ValueError''':
 
     # Gestió de l'error produït quan el contingut de l'entrada no és numèric
 
     # Gestió de l'error produït quan el contingut de l'entrada no és numèric
 
     print("Error: Has d'introduir un número enter vàlid.")
 
     print("Error: Has d'introduir un número enter vàlid.")
 
   
 
   
  except Exception as e:
+
  '''except Exception as e''':
 
     # Captura generalista d'errors imprevistos per evitar la propagació de l'excepció
 
     # Captura generalista d'errors imprevistos per evitar la propagació de l'excepció
 
     print(f"Ha passat un error imprevist: {e}")
 
     print(f"Ha passat un error imprevist: {e}")
 
   
 
   
  finally:
+
  '''finally''':
 
     # Bloc de tancament per assegurar la integritat del final de la subrutina
 
     # Bloc de tancament per assegurar la integritat del final de la subrutina
 
     print("Final de la gestió d'errors.")
 
     print("Final de la gestió d'errors.")

Revisió de 11:34, 6 feb 2026

La Gestió d'Excepcions mitjançant el bloc try-except a Python

En l'àmbit de l'enginyeria de programari, la robustesa d'una aplicació depèn directament de la seva capacitat per gestionar situacions anòmales durant l'execució. Python, com a llenguatge d'alt nivell, implementa un mecanisme estructurat denominat gestió d'excepcions. A diferència del llenguatge C, on el flux d'errors sovint es gestiona mitjançant valors de retorn o validacions manuals, Python permet interceptar l'error abans que provoqui el tancament inesperat de l'intèrpret.

Fonaments de l'estructura

L'arquitectura d'aquest control es divideix en quatre components essencials:

1. '''try''': Defineix el bloc de codi on s'executa la lògica principal que és susceptible de generar una interrupció o runtime error.

2. '''except''': Actua com un controlador d'esdeveniments. Es poden definir múltiples blocs except per especialitzar la resposta segons la naturalesa de l'error (per exemple, errors aritmètics o de tipus de dada).

3. '''Exception''': Representa la classe base de la jerarquia d'errors en Python. Capturar Exception permet gestionar qualsevol anomalia no especificada prèviament.

4. '''finally''': Garanteix l'execució d'un segment de codi independentment de si s'ha produït una excepció o no, essent crític per a l'alliberament de recursos.

Implementació Pràctica

L'exemple següent il·lustra la captura selectiva d'excepcions en una operació aritmètica elemental que requereix la interacció amb l'usuari:


try:
    # Intent d'execució d'operacions crítiques
    # La funció input() retorna una cadena que ha de ser convertida a enter 
    numero = int(input("Introdueix un número: "))

    # Operació susceptible de generar un ZeroDivisionError 
    resultat = 10 / numero
    print(f"El resultat és {resultat}")

except ZeroDivisionError:
    # Gestió específica per a la indeterminació matemàtica de la divisió per zero
    print("Error: No es pot dividir per zero!")

except ValueError:
    # Gestió de l'error produït quan el contingut de l'entrada no és numèric
    print("Error: Has d'introduir un número enter vàlid.")

except Exception as e:
    # Captura generalista d'errors imprevistos per evitar la propagació de l'excepció
    print(f"Ha passat un error imprevist: {e}")

finally:
    # Bloc de tancament per assegurar la integritat del final de la subrutina
    print("Final de la gestió d'errors.")