0Pricing
Dart Academy · Lección

finally y limpieza garantizada

Ejecutar código tanto si se lanza una excepción como si no.

finally y limpieza garantizada 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.

La limpieza debe ejecutarse siempre

Los archivos y las conexiones abiertos deben cerrarse incluso si el código falla. Dart ofrece finally para realizar una limpieza que siempre se lleva a cabo. 🧹

El bloque finally

Un bloque finally se ejecuta después de try y catch, pase lo que pase. Tanto si hay éxito como si hay un fallo, su código siempre se ejecuta.

try {
  work();
} finally {
  cleanup();
}

Se ejecuta después del éxito

Si el bloque try termina sin errores, Dart ejecuta finally justo después, antes de continuar.

Se ejecuta después de catch

Cuando se captura una excepción, se ejecuta el bloque catch y después también se ejecuta finally. Ambos se ejecutan, en ese orden.

try {
  fail();
} catch (e) {
  log(e);
} finally {
  close();
}

Se ejecuta incluso sin catch

Utilice try solo con finally, sin catch. La excepción sigue propagándose, pero la limpieza se ejecuta primero al salir.

try {
  risky();
} finally {
  release();
}

¿Por qué no duplicarlo?

Sin finally, tendría que copiar la limpieza tanto en la ruta de éxito como en la de error. Un solo bloque finally la mantiene en un único lugar.

Limpieza antes de volver a lanzar

Incluso cuando una excepción sigue propagándose sin ser capturada, finally se ejecuta primero, para que los recursos nunca queden sin liberar.

Cerrar un archivo de forma segura

Un uso clásico: abra un recurso en try, utilícelo y luego ciérrelo en finally, independientemente de que la lectura haya tenido éxito.

try {
  file.read();
} finally {
  file.close();
}

Evite devolver en finally

Un return dentro de finally anula cualquier return o excepción anterior. Reserve finally únicamente para la limpieza, no para controlar el flujo.

Orden de ejecución

Recuerde la secuencia: se ejecuta try, después catch si es necesario y, por último, finally. La limpieza siempre cierra el bloque.

try-catch-finally completo

Esto combina los tres elementos: trabajo protegido, manejo de errores y limpieza garantizada con finally al final.

try {
  open();
} catch (e) {
  print(e);
} finally {
  close();
}

Comprobación rápida

¿Cuándo se ejecuta un bloque finally?

Resumen

Ahora puede utilizar finally para garantizar una limpieza que se ejecuta en cualquier ruta: éxito, error capturado o lanzamiento no capturado. Sin fugas. 🔒

Preguntas frecuentes

¿La lección «finally y limpieza garantizada» es gratis?

Sí — el texto completo de «finally y limpieza garantizada» 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 «finally y limpieza garantizada»?

Ejecutar código tanto si se lanza una excepción como si no. 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 «finally y limpieza garantizada»?

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

  1. throw, try y catch
  2. Cláusulas on y tipos de excepción
  3. finally y limpieza garantizada
  4. Excepciones personalizadas y rethrow
← Volver a Dart Academy