“Considero la depuració una fase crítica per a la seguretat i l’experiència d’usuari (UX).” He dissenyat aquest programa amb una visió preventiva. No es tracta només d’arreglar errors quan apareixen, sinó d’evitar que el programa falli (crashes) mitjançant la validació d’entrades. Això és essencial per garantir la integritat de les dades i per oferir una aplicació robusta que no es tanqui inesperadament davant d’una interacció incorrecta de l’usuari.
Com he creat el codi:
He utilitzat blocs try i except al meu script de Python. Això funciona com una xarxa de seguretat. Si el programa detecta que hi haurà un error, la part de l’ “except” el captura i explica a l’usuari què ha passat en lloc de tancar-se de cop.
Aquí teniu un exemple senzill:
try:
# Intento demanar un número a l'usuari
numero = int(input("Escriu un número per dividir 100: "))
print(f"Resultat: {100 / numero}")
except ValueError:
# Això s'executa si l'usuari escriu lletres en comptes de números
print("Espera! Si us plau, introdueix un número, no lletres.")
except ZeroDivisionError:
# Això s'executa si l'usuari intenta dividir per zero
print("Oops! No es pot dividir per zero.")
implementació de l'entrada segura de dades:
En aquesta captura es pot veure el meu script de Python per a l'entrada segura de dades. He implementat un bloc Try-Except (línies 9-25) per evitar que el programa falli si l'usuari introdueix una lletra en lloc d'un número. Això garanteix l'estabilitat del sistema i una millor Experiència d'Usuari (UX), ja que el programa continua actiu malgrat un error d'entrada."

AQUEST ES EL CODI, QUE JO HE UTILITZAT:
# --- PROJECT: SECURE DATA ENTRY SYSTEM ---
def start_program():
print("--- Welcome to the Secure System ---")
# We use a loop so the program doesn't close after one mistake
while True:
try:
# 1. Ask for a number (Age)
# This is where most programs crash if the user types a letter!
age = int(input("\nPlease enter your age to continue: "))
# 2. Add a logical check
if age < 0 or age > 120:
print("Error: That age doesn't seem real. Please try again.")
continue
# 3. Success message
print(f"Success! Age {age} has been validated and saved.")
break # Exit the loop because it worked!
except ValueError:
# This is the 'Safety Net' the teacher is looking for
print("CRITICAL ERROR: You entered text or a symbol.")
print("Action: System prevented a crash. Please enter a NUMBER.")
print("\nThank you for using the stable version of this software.")
# Run the program
start_program()
Gestió d'errors d'entrada:
"En aquesta imatge es pot veure la gestió d'errors en temps real. Quan l'usuari introdueix text ('abc') en lloc d'un número, el bloc except ValueError captura l'error. El programa no es tanca, sinó que informa l'usuari i demana la dada de nou. Això garanteix que el programa sigui estable davant de qualsevol interacció no prevista."

“Durant el desenvolupament, vaig utilitzar prints de control i el debugger de VS Code per rastrejar com canviava la variable age. Això em va permetre assegurar que el bucle while només es trenca quan la dada és realment un número validat.”
Seguretat i Prevenció d’Atacs:
Validar que l’edat sigui un número i estigui en un rang real (0−120) no és només per l’experiència d’usuari; és la primera línia de defensa contra atacs com:
- SQL Injection: Si aquestes dades anessin a una base de dades sense validar, un atacant podria introduir codi maliciós en lloc d’un número per robar informació.
- Buffer Overflow: En controlar la longitud i el tipus de dada, evitem que el programa intenti processar informació que podria col·lapsar la memòria del sistema.
- Sanejament (Sanitization): En el meu codi, el bloc
try-exceptactua com un filtre que “neteja” l’entrada, assegurant que només les dades segures passin a la següent fase de l’algoritme.
