Gestión de errores en código async
Usar try/catch con await de forma segura.
Gestión de errores en código async es una lección gratuita de Dart Academy en CoddyKit. Esta es la lección 3 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Dart Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Dart Academy incluye 4 lecciones en total.
Los Futures pueden fallar
El trabajo asíncrono puede salir mal: un servidor agota el tiempo de espera o falta un archivo. Un Future puede completarse con un error en lugar de un valor.
try y catch con await
Envuelva un await en try/catch y un Future fallido lanzará el error justo en esa línea, igual que los errores síncronos normales.
try {
final data = await fetch();
} catch (e) {
print("failed: $e");
}Capturar tipos específicos
Utilice una cláusula on para gestionar con precisión un tipo de error y permitir que los demás fallos sigan propagándose sin cambios.
try {
await load();
} on TimeoutException {
print("too slow");
}Inspeccionar el error
Añada catch (e, s) para obtener tanto el objeto de error como su seguimiento de pila, lo que facilita mucho la depuración de fallos asíncronos.
catch (e, s) {
print(e);
print(s);
}finally siempre se ejecuta
Un bloque finally se ejecuta tanto si await tiene éxito como si lanza un error, por lo que es el lugar adecuado para cerrar archivos o detener indicadores de carga.
try {
await save();
} finally {
closeFile();
}Lanzar errores desde async
Utilice throw dentro de una función async y el Future devuelto simplemente se completará con ese error, listo para que la persona que lo llama lo capture.
Future<int> risky() async {
throw StateError("nope");
}Errores en cadenas de then
Sin await, adjunte catchError a un Future para gestionar un fallo en una cadena basada en then.
fetch().then(use).catchError(handle);Recuperarse con un valor predeterminado
En catchError o catch puede devolver un valor alternativo, lo que permite que el programa continúe correctamente después de un fallo.
Errores de Futures no gestionados
Un Future fallido que se ignora se convierte en un error no capturado que puede bloquear la aplicación o generar un registro visible. Capture o espere siempre sus Futures.
Volver a lanzar cuando sea necesario
Utilice rethrow dentro de un catch para registrar aquí un fallo y permitir que un gestor externo también se encargue de él.
catch (e) {
log(e);
rethrow;
}await dentro de finally
Incluso puede utilizar await dentro de finally para realizar una limpieza asíncrona, como vaciar un búfer, antes de que la función termine.
Comprobación rápida
Comprobación rápida de la captura de errores asíncronos.
Resumen: errores asíncronos
Ha aprendido a proteger await con try/catch, seleccionar tipos con on, limpiar recursos en finally y recuperarse o volver a lanzar errores. 🛡️
Preguntas frecuentes
¿La lección «Gestión de errores en código async» es gratis?
Sí — el texto completo de «Gestión de errores en código async» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Dart Academy, actualiza a CoddyKit PRO. El curso de Dart Academy incluye 4 lecciones en total.
¿Qué aprenderé en «Gestión de errores en código async»?
Usar try/catch con await de forma segura. Practicas Dart Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Dart Academy?
No se requiere experiencia previa. Dart Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 3 de 4.
¿Cuánto tiempo toma la lección «Gestión de errores en código async»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Dart Academy?
Sí. Cada lección de Dart Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- El bucle de eventos y los microtasks
- Crear y esperar Futures
- Gestión de errores en código async
- Future.wait y trabajo paralelo