2. Provoca un error y decide qué verá el usuario
Detectar un fallo sin sustituir silenciosamente el saldo por cero.
En esta página
Objetivo: Detectar un fallo sin sustituir silenciosamente el saldo por cero.
Antes de empezar: BP_MiNumero; en esta actividad añadirás un componente Wallet de prueba.
La idea que vas a utilizar
Un valor inválido, una conversión que no cabe y una compra sin saldo son situaciones distintas. Primero aprenderás a reconocer un error numérico.
Predice antes de ejecutar
Si Wallet vale 1000 y rechaza la siguiente asignación, ¿qué debería devolver Get Value?
Construye y comprueba
2.1. Rechaza un valor fallido explícito
En este ejercicio crearás un valor con error para aprender a manejar una asignación rechazada. Make Scientific Number Failure permite elegir el error que recibirá el componente. Un número normal como (1000, 0) es válido y se normaliza a (1, 3).
- En tu actor de pruebas (por ejemplo, BP_MiNumero), añade un Scientific Number Value Component llamado Wallet, si todavía no lo tienes. Arrastra su referencia al grafo.
- Añade Try Set Value y conecta Wallet → Target. Ejecútalo desde BeginPlay o desde tu función practica2; si usas una función, asegúrate de llamarla.
- Añade Make Scientific Number Failure y selecciona Numeric Overflow en Error. Conecta su Return Value → New Value. El Make Scientific Number de Base 1000, Exponent 0 queda desconectado durante esta prueba.
- Conecta la ejecución de Try Set Value a Branch, y su Return Value → Condition.
- Añade Print Scientific Number Error. Conecta False → ejecución del Print y Out Error → Error. Escribe
Try Set valueen Context, sin los dos puntos finales: el nodo añade el separador. Puedes ampliar Duration en los pines avanzados. - Compila y ejecuta. Resultado esperado: Return Value = False, Out Error = Numeric Overflow y mensaje rojo
Try Set value: Numeric Overflow.
Las capturas muestran cómo conectar la rama de error y el mensaje que aparecerá al ejecutarla:


Vuelve a un valor válido: vuelve a conectar Make Scientific Number (Base 1000, Exponent 0) → New Value. Debe devolver True / No Error, guardar 1000 y no imprimir el error. Para comprobar además que un fallo no modifica el saldo, guarda primero 1000, intenta después la asignación fallida y consulta Get Value: debe seguir siendo 1000.
Si solo quieres imprimir errores, puedes conectar la ejecución de Try Set Value directamente al Print, sin Branch: No Error no imprime nada si No Error Message está vacío. Mantén Branch si necesitas acciones distintas en éxito y fallo. Print es solo de desarrollo, no el mensaje final de tu interfaz.
2.2. Provoca un fallo en una operación
- Crea dos Make Scientific Number: (Base 2, Exponent 3) y (Base 0, Exponent 0). Conéctalos a Divide.
- Obtén Get Error del resultado y conéctalo a Print Scientific Number Error → Error. Ejecuta el Print desde tu evento, con Context =
Dividir. - Debe aparecer Division by Zero. Aquí el fallo lo genera la división, no Make Scientific Number Failure.
- Cambia el divisor a (Base 2, Exponent 0): el resultado debe ser 1000, Is Success = True, y el Print de error debe permanecer silencioso. Puedes mostrar el resultado con Print Scientific Number.
Prueba también (Base 1.25, Exponent 400) con Try To Double: el número científico es válido, pero la conversión devuelve False / Overflow. Conecta su Out Error al Print.
Comprueba tu razonamiento
Ver la explicación
Debe conservar 1000. Un bool false y su error explican el rechazo; no son una orden para poner el saldo a cero.
Ahora prueba tú: Cambia una sola entrada del ejercicio: primero provoca Division by Zero y después corrígela.
Puedes continuar cuando: puedes explicar qué falló y demostrar que una operación rechazada no alteró el saldo.
Tu progreso se guarda solo en este navegador y se conserva al cambiar de idioma.