Diferència entre revisions de la pàgina «Try-except a Python»
m |
|||
| Línia 20: | 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 29: | 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.")